# php_manual

id: radius_cvt_addr
type: function
doc:
<comment>Description:</comment>
  Преобразует необработанные данные в IP-адрес
  
  Преобразует необработанные данные в IP-адрес

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Входные данные

<comment>Return:</comment>
  <info>string</info>  Возвращает IP-адрес.

<comment>See Also:</comment>
   * <strong>radius_cvt_int()</strong>
   * <strong>radius_cvt_string()</strong>


id: radius_cvt_int
type: function
doc:
<comment>Description:</comment>
  Преобразует необработанные данные в целое число
  
  Преобразует необработанные данные в целое число

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Входные данные

<comment>Return:</comment>
  <info>int</info>  Возвращает целое число, полученное из данных.

<comment>See Also:</comment>
   * <strong>radius_cvt_addr()</strong>
   * <strong>radius_cvt_string()</strong>


id: radius_cvt_string
type: function
doc:
<comment>Description:</comment>
  Преобразует необработанные данные в строку
  
  Преобразует необработанные данные в строку

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Входные данные

<comment>Return:</comment>
  <info>string</info>  Возвращает строку, полученную из данных.

<comment>See Also:</comment>
   * <strong>radius_cvt_addr()</strong>
   * <strong>radius_cvt_int()</strong>


id: radius_demangle
type: function
doc:
<comment>Description:</comment>
  Расшифровывает данные
  
  Некоторые данные (пароли, MS-CHAPv1 MPPE-ключи) искажены по соображениям безопасности и их
  необходимо расшифровать, прежде чем вы сможете их использовать.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>string</info>    <strong>$mangled</strong>        Искажённые данные, которые необходимо расшифровать.

<comment>Return:</comment>
  <info>string</info>  Возвращает расшифрованную строку или <info>false</info> в случае возникновения ошибки.


id: radius_demangle_mppe_key
type: function
doc:
<comment>Description:</comment>
  Получает mppe-ключи из искажённых данных
  
  При использовании MPPE с MS-CHAPv2, ключи отправляемые и получаемые ключи искажаются (смотрите RFC
  2548), однако эта функция бесполезна, поскольку я не думаю, что есть или будет реализация
  PPTP-MPPE в PHP.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>string</info>    <strong>$mangled</strong>        Искажённые данные, которые необходимо деформировать

<comment>Return:</comment>
  <info>string</info>  Возвращает деформированную строку или <info>false</info> в случае возникновения ошибки.


id: radius_get_attr
type: function
doc:
<comment>Description:</comment>
  Извлекает атрибут
  
  Как и запросы Radius, каждый ответ может содержать ноль или более атрибутов. После того, как ответ
  был успешно получен от <strong>radius_send_request()</strong>, его атрибуты могут быть извлечены один за другим с
  помощью <strong>radius_get_attr()</strong>. Каждый раз, когда вызывается <strong>radius_get_attr()</strong>, функция получает
  следующий атрибут из текущего ответа.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает ассоциативный массив, содержащий тип атрибута и данные или номер ошибки \<= 0.

<comment>See Also:</comment>
   * <strong>radius_put_attr()</strong>
   * <strong>radius_get_vendor_attr()</strong>
   * <strong>radius_put_vendor_attr()</strong>
   * <strong>radius_send_request()</strong>


id: radius_get_tagged_attr_data
type: function
doc:
<comment>Description:</comment>
  Извлекает данные из помеченного атрибута
  
  Если из <strong>radius_get_attr()</strong> был возвращён тегированный атрибут, <strong>radius_get_tagged_attr_data()</strong> вернёт
  тег из атрибута.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Тегированный атрибут, который нужно раскодировать.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает данные из тегированного атрибута или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_get_attr()</strong>
   * <strong>radius_get_tagged_attr_tag()</strong>


id: radius_get_tagged_attr_tag
type: function
doc:
<comment>Description:</comment>
  Извлекает тег из помеченного атрибута
  
  Если из <strong>radius_get_attr()</strong> был возвращён тегированный атрибут, <strong>radius_get_tagged_attr_data()</strong> вернёт
  тег из атрибута.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Тегированный атрибут, который нужно раскодировать.

<comment>Return:</comment>
  <info>int|false</info>  Возвращает тег из тегированного атрибута или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_get_attr()</strong>
   * <strong>radius_get_tagged_attr_data()</strong>


id: radius_get_vendor_attr
type: function
doc:
<comment>Description:</comment>
  Извлекает атрибут, зависящий от поставщика
  
  Если <strong>radius_get_attr()</strong> вернула <info>RADIUS_VENDOR_SPECIFIC</info>, <strong>radius_get_vendor_attr()</strong> может быть вызвана
  для определения поставщика.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Входные данные

<comment>Return:</comment>
  <info>array</info>  Возвращает ассоциативный массив, содержащий тип атрибута, поставщика и данные или <info>false</info> в
         случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_get_attr()</strong>
   * <strong>radius_put_vendor_attr()</strong>


id: radius_put_addr
type: function
doc:
<comment>Description:</comment>
  Присоединяет атрибут IP-адреса
  
  Присоединяет атрибут IP-адреса к текущему запросу RADIUS.
  
  Перед вызовом данной функции необходимо создать запрос с помощью функции <strong>radius_create_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>int</info>       <strong>$type</strong>           Тип атрибута.
  <info>string</info>    <strong>$addr</strong>           Адрес IPv4 в виде строки, например, <return>10.0.0.1</return>.
  <info>int</info>       <strong>$options</strong>        Битовая маска опций атрибута. В качестве значений можно использовать
                            <info>RADIUS_OPTION_TAGGED</info> и <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            Тег атрибута. Данный параметр игнорируется, если не установлена опция
                            <info>RADIUS_OPTION_TAGGED</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: radius_put_attr
type: function
doc:
<comment>Description:</comment>
  Присоединяет бинарный атрибут
  
  Присоединяет бинарный атрибут к текущему запросу RADIUS.
  
  Перед вызовом данной функции необходимо создать запрос с помощью функции <strong>radius_create_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>int</info>       <strong>$type</strong>           Тип атрибута.
  <info>string</info>    <strong>$value</strong>          Значение атрибута, которое будет рассматриваться как необработанная
                            двоичная строка.
  <info>int</info>       <strong>$options</strong>        Битовая маска опций атрибута. В качестве значений можно использовать
                            <info>RADIUS_OPTION_TAGGED</info> и <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            Тег атрибута. Данный параметр игнорируется, если не установлена опция
                            <info>RADIUS_OPTION_TAGGED</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_get_attr()</strong>
   * <strong>radius_get_vendor_attr()</strong>
   * <strong>radius_put_vendor_attr()</strong>


id: radius_put_int
type: function
doc:
<comment>Description:</comment>
  Присоединяет целочисленный атрибут
  
  Присоединяет целочисленный атрибут к текущему запросу RADIUS.
  
  Перед вызовом данной функции необходимо создать запрос с помощью функции <strong>radius_create_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>int</info>       <strong>$type</strong>           Тип атрибута.
  <info>int</info>       <strong>$value</strong>          Значение атрибута.
  <info>int</info>       <strong>$options</strong>        Битовая маска опций атрибута. В качестве значений можно использовать
                            <info>RADIUS_OPTION_TAGGED</info> и <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            Тег атрибута. Данный параметр игнорируется, если не установлена опция
                            <info>RADIUS_OPTION_TAGGED</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_put_string()</strong>
   * <strong>radius_put_vendor_int()</strong>
   * <strong>radius_put_vendor_string()</strong>


id: radius_put_string
type: function
doc:
<comment>Description:</comment>
  Присоединяет строковый атрибут
  
  Присоединяет строковый атрибут к текущему запросу RADIUS. В общем, <strong>radius_put_attr()</strong> - более
  полезная функция для присоединения строковых атрибутов, поскольку она бинарно безопасна.
  
  Перед вызовом данной функции необходимо создать запрос с помощью функции <strong>radius_create_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>int</info>       <strong>$type</strong>           Тип атрибута.
  <info>string</info>    <strong>$value</strong>          Значение атрибута. Базовая библиотека ожидает, что это значение будет
                            иметь нулевой символ в конце, поэтому этот параметр небезопасен для
                            двоичного кода.
  <info>int</info>       <strong>$options</strong>        Битовая маска опций атрибута. В качестве значений можно использовать
                            <info>RADIUS_OPTION_TAGGED</info> и <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            Тег атрибута. Данный параметр игнорируется, если не установлена опция
                            <info>RADIUS_OPTION_TAGGED</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_put_int()</strong>
   * <strong>radius_put_vendor_int()</strong>
   * <strong>radius_put_vendor_string()</strong>


id: radius_put_vendor_addr
type: function
doc:
<comment>Description:</comment>
  Присоединяет атрибут IP-адреса конкретного поставщика
  
  Присоединяет атрибут поставщика IP-адреса к текущему запросу RADIUS.
  
  Перед вызовом данной функции необходимо создать запрос с помощью функции <strong>radius_create_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>int</info>       <strong>$vendor</strong>         ID производителя (vendor).
  <info>int</info>       <strong>$type</strong>           Тип атрибута.
  <info>string</info>    <strong>$addr</strong>           Адрес IPv4 в виде строки, например, <return>10.0.0.1</return>.
  <info></info>          <strong>$options</strong>        Битовая маска опций атрибута. В качестве значений можно использовать
                            <info>RADIUS_OPTION_TAGGED</info> и <info>RADIUS_OPTION_SALT</info>.
  <info></info>          <strong>$tag</strong>            Тег атрибута. Данный параметр игнорируется, если не установлена опция
                            <info>RADIUS_OPTION_TAGGED</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: radius_put_vendor_attr
type: function
doc:
<comment>Description:</comment>
  Присоединяет бинарный атрибут, зависящий от поставщика
  
  Присоединяет к текущему запросу RADIUS бинарный атрибут, зависящий от поставщика.
  
  Перед вызовом данной функции необходимо создать запрос с помощью функции <strong>radius_create_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>int</info>       <strong>$vendor</strong>         ID производителя (vendor).
  <info>int</info>       <strong>$type</strong>           Тип атрибута.
  <info>string</info>    <strong>$value</strong>          Значение атрибута, которое будет рассматриваться как необработанная
                            двоичная строка.
  <info>int</info>       <strong>$options</strong>        Битовая маска опций атрибута. В качестве значений можно использовать
                            <info>RADIUS_OPTION_TAGGED</info> и <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            Тег атрибута. Данный параметр игнорируется, если не установлена опция
                            <info>RADIUS_OPTION_TAGGED</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_get_vendor_attr()</strong>


id: radius_put_vendor_int
type: function
doc:
<comment>Description:</comment>
  Присоединяет целочисленный атрибут, зависящий от поставщика
  
  Присоединяет к текущему запросу RADIUS целочисленный атрибут, зависящий от поставщика.
  
  Перед вызовом данной функции необходимо создать запрос с помощью функции <strong>radius_create_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>int</info>       <strong>$vendor</strong>         ID производителя (vendor).
  <info>int</info>       <strong>$type</strong>           Тип атрибута.
  <info>int</info>       <strong>$value</strong>          Значение атрибута.
  <info>int</info>       <strong>$options</strong>        Битовая маска опций атрибута. В качестве значений можно использовать
                            <info>RADIUS_OPTION_TAGGED</info> и <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            Тег атрибута. Данный параметр игнорируется, если не установлена опция
                            <info>RADIUS_OPTION_TAGGED</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_put_vendor_string()</strong>


id: radius_put_vendor_string
type: function
doc:
<comment>Description:</comment>
  Присоединяет строковый атрибут, зависящий от поставщика
  
  Присоединяет к текущему запросу RADIUS строковый атрибут, зависящий от поставщика. В общем,
  <strong>radius_put_vendor_attr()</strong> - более полезная функция для присоединения строковых атрибутов, поскольку
  она бинарно безопасна.
  
  Перед вызовом данной функции необходимо создать запрос с помощью функции <strong>radius_create_request()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.
  <info>int</info>       <strong>$vendor</strong>         ID производителя (vendor).
  <info>int</info>       <strong>$type</strong>           Тип атрибута.
  <info>string</info>    <strong>$value</strong>          Значение атрибута. Базовая библиотека ожидает, что это значение будет
                            иметь нулевой символ в конце, поэтому этот параметр небезопасен для
                            двоичного кода.
  <info>int</info>       <strong>$options</strong>        Битовая маска опций атрибута. В качестве значений можно использовать
                            <info>RADIUS_OPTION_TAGGED</info> и <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            Тег атрибута. Данный параметр игнорируется, если не установлена опция
                            <info>RADIUS_OPTION_TAGGED</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_put_vendor_int()</strong>


id: radius_request_authenticator
type: function
doc:
<comment>Description:</comment>
  Возвращает аутентификатор запроса
  
  Аутентификатор запроса необходим для распознавания искажённых данных, таких как пароли и ключи
  шифрования.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.

<comment>Return:</comment>
  <info>string</info>  Возвращает аутентификатор запроса в виде строки или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>radius_demangle()</strong>


id: radius_salt_encrypt_attr
type: function
doc:
<comment>Description:</comment>
  Зашифровывает значение с помощью соли
  
  Применяет алгоритм шифрования RADIUS к заданному значению.
  
  Как правило, это делается автоматически путём предоставления опции <info>RADIUS_OPTION_SALT</info> функции
  установки атрибута, но эту функцию можно использовать, если требуется создание низкоуровневого
  запроса.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Данные, которые необходимо зашифровать с помощью соли.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает данные, зашифрованные с помощью соли или <info>false</info> в случае возникновения
                ошибки.

<comment>See Also:</comment>
   * <strong>radius_put_addr()</strong>
   * <strong>radius_put_attr()</strong>
   * <strong>radius_put_int()</strong>
   * <strong>radius_put_string()</strong>


id: radius_send_request
type: function
doc:
<comment>Description:</comment>
  Отправляет запрос и ждёт ответ
  
  После создания запроса Radius отправляет его с помощью <strong>radius_send_request()</strong>.
  
  Функция <strong>radius_send_request()</strong> отправляет запрос и ожидает корректный ответ, повторяя попытки с
  определёнными серверами в циклическом режиме по мере необходимости.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.

<comment>Return:</comment>
  <info>int</info>  Если получен корректный ответ, <strong>radius_send_request()</strong> возвращает код Radius, который указывает
       тип ответа. Обычно это <info>RADIUS_ACCESS_ACCEPT</info>, <info>RADIUS_ACCESS_REJECT</info> или
       <info>RADIUS_ACCESS_CHALLENGE</info>. Если корректный ответ не получен, <strong>radius_send_request()</strong> возвращает
       <info>false</info>.

<comment>See Also:</comment>
   * <strong>radius_create_request()</strong>


id: radius_server_secret
type: function
doc:
<comment>Description:</comment>
  Возвращает общий секрет
  
  Общий секрет необходим как соль для разборки искажённых данных, таких как пароли и ключи
  шифрования.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.

<comment>Return:</comment>
  <info>string</info>  Возвращает общий секрет сервера в виде строки или <info>false</info> в случае возникновения ошибки.


id: radius_strerror
type: function
doc:
<comment>Description:</comment>
  Возвращает сообщение об ошибке
  
  В случае возникновения ошибки функций radius, они записывают сообщение об ошибке. Это сообщение
  можно получить с помощью данной функции.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  Ресурс RADIUS.

<comment>Return:</comment>
  <info>string</info>  Возвращает сообщения об ошибках в виде строки из функций radius, завершившихся ошибкой.


id: rand
type: function
doc:
<comment>Description:</comment>
  Генерирует случайное число
  
  При вызове без параметров <strong>$min</strong> и <strong>$max</strong>, возвращает псевдослучайное целое в диапазоне от 0 до
  <strong>getrandmax()</strong>. Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите
  <return>rand(5, 15)</return>.
  
  Функция не создаёт криптографически защищённые значения и не должна использоваться для
  криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для
  разгадывания.
  
  Если нужна криптографически безопасная случайная последовательность, можно использовать класс
  <class>Random\Randomizer</class> с движком <class>Random\Engine\Secure</class>. Для простых сценариев существуют функции
  <strong>random_int()</strong> и <strong>random_bytes()</strong> с удобным API криптографически безопасного генератора
  псевдослучайных чисел (CSPRNG), поддерживаемого операционной системой.
  
  На некоторых платформах (таких как Windows) <strong>getrandmax()</strong> всего лишь 32767. Чтобы расширить
  диапазон, используйте параметры <strong>$min</strong> и <strong>$max</strong>, или обратитесь к функции <strong>mt_rand()</strong>.
  
  Начиная с PHP 7.1.0, <strong>rand()</strong> использует тот же алгоритм получения случайных чисел, что и <strong>mt_rand()</strong>.
  Для сохранения обратной совместимости, функция <strong>rand()</strong> позволяет задавать параметр <strong>$max</strong> меньше, чем
  параметр <strong>$min</strong>. Функция <strong>mt_rand()</strong> в такой ситуации будет возвращать <info>false</info>

<comment>Param:</comment>
  <info>int</info>  <strong>$min</strong>  Наименьшее значение, которое может быть возвращено (по умолчанию: 0)
  <info>int</info>  <strong>$max</strong>  Наибольшее значение, которое может быть возвращено (по умолчанию: <strong>getrandmax()</strong>)

<comment>Return:</comment>
  <info>int</info>  Псевдослучайное значение в диапазоне от <strong>$min</strong> (или 0) до <strong>$max</strong> (или <strong>getrandmax()</strong>).

<comment>See Also:</comment>
   * <strong>srand()</strong>
   * <strong>getrandmax()</strong>
   * <strong>mt_rand()</strong>
   * <strong>random_int()</strong>
   * <strong>random_bytes()</strong>


id: random_bytes
type: function
doc:
<comment>Description:</comment>
  Получает криптографически безопасные случайные байты
  
  Создаёт строку, содержащую равномерно выбранные случайные байты с запрошенной длиной <strong>$length</strong>.
  
  Поскольку возвращаемые байты выбираются совершенно случайно, полученная строка может содержать
  непечатаемые символы или недопустимые последовательности UTF-8. Может потребоваться её кодирование
  перед передачей или отображением.
  
  Случайная последовательность, создаваемая функцией, подходит для всех приложений, включая
  генерацию долгосрочных секретов, таких как ключи шифрования.
  
  Источники случайных величин в порядке приоритета:
  
  Linux: getrandom(), /dev/urandom
  
  FreeBSD &gt;= 12 (PHP &gt;= 7.3): getrandom(), /dev/urandom
  
  Windows (PHP &gt;= 7.2): CNG-API
  
  Windows: CryptGenRandom
  
  macOS (PHP &gt;= 8.2; &gt;= 8.1.9; &gt;= 8.0.22, если CCRandomGenerateBytes доступен во время
  компиляции): CCRandomGenerateBytes()
  
  macOS (PHP &gt;= 8.1; &gt;= 8.0.2): arc4random_buf(), /dev/urandom
  
  NetBSD &gt;= 7 (PHP &gt;= 7.1; &gt;= 7.0.1): arc4random_buf(), /dev/urandom
  
  OpenBSD &gt;= 5.5 (PHP &gt;= 7.1; &gt;= 7.0.1): arc4random_buf(), /dev/urandom
  
  DragonflyBSD (PHP &gt;= 8.1): getrandom(), /dev/urandom
  
  Solaris (PHP &gt;= 8.1): getrandom(), /dev/urandom
  
  Любая комбинация операционной системы и версии PHP, не указанная ранее: /dev/urandom
  
  Если ни один из источников не доступен или все они не генерируют случайную величину, то будет
  выброшено исключение <class>Random\RandomException</class>.
  
  Эта функция была добавлена в PHP 7.0, а для версий с 5.2 по 5.6 включительно доступна
  пользовательская реализация.

<comment>Param:</comment>
  <info>int</info>  <strong>$length</strong>  Длина генерируемой строки в байтах; должно быть <return>1</return> или больше.

<comment>Return:</comment>
  <info>string</info>  Возвращает строку, состоящую из заданного количества криптографически безопасных байт.

<comment>See Also:</comment>
   * <strong>Random\Randomizer::getBytes()</strong>
   * <strong>random_int()</strong>
   * <strong>bin2hex()</strong>
   * <strong>base64_encode()</strong>


id: random_int
type: function
doc:
<comment>Description:</comment>
  Получает криптографически безопасное, равномерно выбранное целое число
  
  Создаёт равномерно выбранное целое число между заданными минимумом и максимумом.
  
  Случайная последовательность, создаваемая функцией, подходит для всех приложений, включая
  генерацию долгосрочных секретов, таких как ключи шифрования.
  
  Источники случайных величин в порядке приоритета:
  
  Linux: getrandom(), /dev/urandom
  
  FreeBSD &gt;= 12 (PHP &gt;= 7.3): getrandom(), /dev/urandom
  
  Windows (PHP &gt;= 7.2): CNG-API
  
  Windows: CryptGenRandom
  
  macOS (PHP &gt;= 8.2; &gt;= 8.1.9; &gt;= 8.0.22, если CCRandomGenerateBytes доступен во время
  компиляции): CCRandomGenerateBytes()
  
  macOS (PHP &gt;= 8.1; &gt;= 8.0.2): arc4random_buf(), /dev/urandom
  
  NetBSD &gt;= 7 (PHP &gt;= 7.1; &gt;= 7.0.1): arc4random_buf(), /dev/urandom
  
  OpenBSD &gt;= 5.5 (PHP &gt;= 7.1; &gt;= 7.0.1): arc4random_buf(), /dev/urandom
  
  DragonflyBSD (PHP &gt;= 8.1): getrandom(), /dev/urandom
  
  Solaris (PHP &gt;= 8.1): getrandom(), /dev/urandom
  
  Любая комбинация операционной системы и версии PHP, не указанная ранее: /dev/urandom
  
  Если ни один из источников не доступен или все они не генерируют случайную величину, то будет
  выброшено исключение <class>Random\RandomException</class>.
  
  Эта функция была добавлена в PHP 7.0, а для версий с 5.2 по 5.6 включительно доступна
  пользовательская реализация.

<comment>Param:</comment>
  <info>int</info>  <strong>$min</strong>  Нижняя граница диапазона.
  <info>int</info>  <strong>$max</strong>  Верхняя граница диапазона.

<comment>Return:</comment>
  <info>int</info>  Криптографически безопасное, равномерно выбранное целое число из замкнутого интервала [<strong>$min</strong>,
       <strong>$max</strong>]. Возможными возвращаемыми значениями являются <strong>$min</strong> и <strong>$max</strong>.

<comment>See Also:</comment>
   * Random\Randomizer::getInt
   * <strong>random_bytes()</strong>


id: range
type: function
doc:
<comment>Description:</comment>
  Создаёт массив, содержащий диапазон элементов
  
  Создаёт массив, содержащий диапазон элементов.
  
  Если оба параметра — <strong>$start</strong> и <strong>$end</strong> — будут строками (<info>string</info>), а параметр <strong>$step</strong> — числом (<info>int</info>), то
  созданный массив будет последовательностью байтов. В других случаях созданный массив будет
  последовательностью чисел.
  
  Последовательность будет возрастать, если значение параметра <strong>$start</strong> меньше или равно значению
  параметра <strong>$end</strong>. В противном случае последовательность будет убывать.

<comment>Param:</comment>
  <info>string|int|float</info>  <strong>$start</strong>  Первое значение последовательности.
  <info>string|int|float</info>  <strong>$end</strong>    Последнее значение последовательности.
  <info>int|float</info>         <strong>$step</strong>   Параметр <strong>$step</strong> определяет, на сколько будут изменяться значения в
                            создаваемой последовательности.
                            
                            В параметр <strong>$step</strong> можно передавать отрицательное значение, если нужно
                            создать убывающую последовательность.
                            
                            Если значение параметра <strong>$step</strong> будет числом с плавающей точкой (<info>float</info>)
                            без дробной части, то оно будет интерпретировано как целое число (<info>int</info>).

<comment>Return:</comment>
  <info>array</info>  Возвращает последовательность элементов в виде массива (<info>array</info>), в котором первый элемент
         получает значение параметра <strong>$start</strong>, а последний — параметра <strong>$end</strong>, в которой каждое значение
         последовательности отстаёт от другого на указанное в параметре <strong>$step</strong> количество шагов.
         
         Последний элемент возвращённого массива будет равен либо значению параметра <strong>$end</strong>, либо
         предыдущему значению последовательности, в зависимости от значения параметра <strong>$step</strong>.
         
         Если оба параметра — <strong>$start</strong> и <strong>$end</strong> — будут строками (<info>string</info>), а параметр <strong>$step</strong> — числом
         (<info>int</info>), то созданный массив будет последовательностью байтов, обычно латинских символов в
         кодировке ASCII.
         
         Если хотя бы одно из значений параметров <strong>$start</strong>, <strong>$end</strong>, или <strong>$step</strong> будет числом с плавающей
         точкой (<info>float</info>), созданный массив будет последовательностью значений <info>float</info>.
         
         В противном случае созданный массив будет последовательностью целых чисел (<info>int</info>).

<comment>See Also:</comment>
   * <strong>shuffle()</strong>
   * <strong>array_fill()</strong>
   * foreach


id: rar_wrapper_cache_stats
type: function
doc:
<comment>Description:</comment>
  Кеш доступов и отказов обёртки URL
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Return:</comment>
  <info>string</info>  


id: rawurldecode
type: function
doc:
<comment>Description:</comment>
  Декодирование URL-кодированной строки
  
  Возвращает строку, в которой последовательность знаков процента (<return>%</return>) и следующие за ним два
  шестнадцатеричных числа заменены буквальными символами.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  URL, который должен быть декодирован.

<comment>Return:</comment>
  <info>string</info>  Возвращает декодированный URL в виде строки.

<comment>See Also:</comment>
   * <strong>rawurlencode()</strong>
   * <strong>urldecode()</strong>
   * <strong>urlencode()</strong>
   * RFC 3986


id: rawurlencode
type: function
doc:
<comment>Description:</comment>
  URL-кодирование строки согласно RFC 3986
  
  Кодирует строку согласно RFC 3986.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  URL, который должен быть закодирован.

<comment>Return:</comment>
  <info>string</info>  Возвращает строку, в которой все не цифро-буквенные символы, кроме <return>-_.~</return>, должны быть
          заменены знаком процента (<return>%</return>), за которым следует два шестнадцатеричных числа. Это
          кодирование, описанное в RFC 3986, служит для защиты буквенных символов от интерпретации в
          качестве специальных разграничителей URL и защищает URL от искажения при передаче символов
          с последующей конвертацией (как в некоторых почтовых системах).

<comment>See Also:</comment>
   * <strong>rawurldecode()</strong>
   * <strong>urldecode()</strong>
   * <strong>urlencode()</strong>
   * RFC 3986


id: read_exif_data
type: function
doc:
<comment>Description:</comment>
  Псевдоним exif_read_data
  
  Функция является псевдонимом:  <strong>exif_read_data()</strong>.


id: readdir
type: function
doc:
<comment>Description:</comment>
  Получает элемент каталога по его дескриптору
  
  Возвращает имя следующего по порядку элемента каталога. Элементы возвращаются в том порядке, в
  котором они хранятся в файловой системе.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$dir_handle</strong>  Дескриптор каталога (<info>resource</info>), ранее открытый функцией <strong>opendir()</strong>.
                              Если дескриптор каталога не указан, используется последний дескриптор,
                              открытый функцией <strong>opendir()</strong>.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает имя элемента каталога в случае успешного выполнения или <info>false</info> в случае
                возникновения ошибки.
                
                Эта функция может возвращать как логическое значение <info>false</info>, так и значение не типа
                boolean, которое приводится к <info>false</info>. За более подробной информацией обратитесь к
                разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого
                этой функцией.

<comment>See Also:</comment>
   * <strong>is_dir()</strong>
   * <strong>glob()</strong>
   * <strong>opendir()</strong>
   * <strong>scandir()</strong>


id: readfile
type: function
doc:
<comment>Description:</comment>
  Выводит файл
  
  Читает файл и записывает его в буфер вывода.

<comment>Param:</comment>
  <info>string</info>         <strong>$filename</strong>          Имя читаемого файла.
  <info>bool</info>           <strong>$use_include_path</strong>  Если вы хотите, чтобы использовался поиск файла в include_path,
                                    установите этот параметр в <info>true</info>.
  <info>resource|null</info>  <strong>$context</strong>           Ресурс (<info>resource</info>) с контекстом потока.

<comment>Return:</comment>
  <info>int|false</info>  Возвращает количество прочитанных из файла байт в случае успешного выполнения или <info>false</info>
             в случае возникновения ошибки

<comment>See Also:</comment>
   * <strong>fpassthru()</strong>
   * <strong>file()</strong>
   * <strong>fopen()</strong>
   * <strong>include()</strong>
   * <strong>require()</strong>
   * <strong>virtual()</strong>
   * <strong>file_get_contents()</strong>
   * 


id: readgzfile
type: function
doc:
<comment>Description:</comment>
  Выводит содержимое gz-файла
  
  Читает файл, распаковывает его и записывает в стандартный вывод.
  
  Может также использоваться для чтения файла, не имеющего формат gzip; в этом случае <strong>readgzfile()</strong>
  непосредственно читает из файла без распаковки.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>          Имя файла. Этот файл будет открыт и его содержимое будет записано в
                             стандартный вывод.
  <info>int</info>     <strong>$use_include_path</strong>  Вы можете использовать этот необязательный параметр и установить его в
                             <return>1</return>, если необходимо, чтобы поиск файла также осуществлялся в директориях
                             include_path.

<comment>Return:</comment>
  <info>int|false</info>  Возвращает количество байтов в файле (после распаковки) в случае успешного выполнения
             или <info>false</info> в случае возникновения ошибки

<comment>See Also:</comment>
   * <strong>gzpassthru()</strong>
   * <strong>gzfile()</strong>
   * <strong>gzopen()</strong>


id: readline
type: function
doc:
<comment>Description:</comment>
  Читает строку
  
  Читает одну строку, введённую пользователем. Если вам нужно добавить эту строку в историю, то
  сделать это вы должны самостоятельно, с помощью <strong>readline_add_history()</strong>.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$prompt</strong>  Подсказка, которая будет выведена пользователю.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает одну строку, введённую пользователем. Символ конца строки будет удалён.
                Если больше нет данных для чтения, тогда возвращает <info>false</info>.


id: readline_add_history
type: function
doc:
<comment>Description:</comment>
  Добавляет строку в историю
  
  Добавляет строку в историю ввода.

<comment>Param:</comment>
  <info>string</info>  <strong>$prompt</strong>  Строка, которую надо добавить в историю команд.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: readline_callback_handler_install
type: function
doc:
<comment>Description:</comment>
  Инициализирует callback-интерфейс readline и терминал, печатает строку приглашения и немедленно
  возвращает управление
  
  Инициализирует callback-интерфейс readline, печатает <strong>$prompt</strong> и возвращает управление. Повторный
  вызов этой функции без предварительного удаления старого callback-интерфейса приведёт к
  автоматической его перезаписи.
  
  Функционал callback-функций особенно удобен в комбинации с <strong>stream_select()</strong>, поскольку он, в
  отличие от <strong>readline()</strong>, позволяет чередовать ввод-вывод и пользовательский ввод.

<comment>Param:</comment>
  <info>string</info>    <strong>$prompt</strong>    Строка приглашения.
  <info>callable</info>  <strong>$callback</strong>  Функция передаваемая в параметр <strong>$callback</strong> должна принимать один параметр -
                       возвращённый пользовательский ввод.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>readline_callback_handler_remove()</strong>
   * <strong>readline_callback_read_char()</strong>
   * <strong>stream_select()</strong>


id: readline_callback_handler_remove
type: function
doc:
<comment>Description:</comment>
  Удаляет ранее зарегистрированную callback-функцию и восстанавливает терминал
  
  Удаляет ранее зарегистрированную callback-функцию и восстанавливает настройки терминала.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info>, если удаление прошло успешно или <info>false</info>, если удалять нечего.

<comment>See Also:</comment>
   * <strong>readline_callback_handler_install()</strong>
   * <strong>readline_callback_read_char()</strong>


id: readline_callback_read_char
type: function
doc:
<comment>Description:</comment>
  Читает символ и информирует callback-функцию readline, что получена строка
  
  Читает введённый пользователем символ. Когда строка получена, эта функция информирует
  callback-функцию интерфейса readline, заданную с помощью <strong>readline_callback_handler_install()</strong>, что
  строка готова к вводу.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.

<comment>See Also:</comment>
   * <strong>readline_callback_handler_install()</strong>
   * <strong>readline_callback_handler_remove()</strong>


id: readline_clear_history
type: function
doc:
<comment>Description:</comment>
  Очищает историю команд
  
  Функция очищает историю ввода команд.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: readline_completion_function
type: function
doc:
<comment>Description:</comment>
  Зарегистрировать функцию автодополнения
  
  Функция регистрирует функцию автодополнения. Это то же самое, как если вы нажимаете табуляцию в
  Bash и строка дополняется наиболее подходящим текстом.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  Имя функции, которая принимает строку и возвращает массив подходящих
                       совпадений.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: readline_info
type: function
doc:
<comment>Description:</comment>
  Устанавливает/читает различные внутренние переменные readline
  
  Устанавливает/читает различные внутренние переменные readline.

<comment>Param:</comment>
  <info>string|null</info>           <strong>$var_name</strong>  Имя переменной.
  <info>int|string|bool|null</info>  <strong>$value</strong>     Если задано, то переменной будет присвоено это значение.

<comment>Return:</comment>
  <info>mixed</info>  Если вызвать функцию без параметров, то будет возвращён массив значений всех внутренних
         переменных readline. У элементов массива будут следующие индексы: <return>done</return>, <return>end</return>,
         <return>erase_empty_line</return>, <return>library_version</return>, <return>line_buffer</return>, <return>mark</return>, <return>pending_input</return>, <return>point</return>, <return>prompt</return>,
         <return>readline_name</return> и <return>terminal_name</return>. Массив (<info>array</info>) будет содержать только те элементы, которые
         поддерживаются библиотекой, используемой для сборки модуля readline.
         
         Если вызвать с одним или двумя параметрами, то будет возвращено старое/текущее значение
         переменной.


id: readline_list_history
type: function
doc:
<comment>Description:</comment>
  Список истории команд
  
  Возвращает полную историю команд.

<comment>Return:</comment>
  <info>array</info>  Возвращает индексированный массив с занесёнными в историю командами.


id: readline_on_new_line
type: function
doc:
<comment>Description:</comment>
  Информирует readline, что курсор переместился на новую строку
  
  Информирует readline, что курсор переместился на новую строку.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.


id: readline_read_history
type: function
doc:
<comment>Description:</comment>
  Прочитать историю команд из файла
  
  Функция читает историю команд из файла.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  Путь к файлу.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: readline_redisplay
type: function
doc:
<comment>Description:</comment>
  Перерисовать экран
  
  Перерисовывает экран.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.


id: readline_write_history
type: function
doc:
<comment>Description:</comment>
  Записать историю команд в файл
  
  Функция записывает историю команд в файл.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  Путь к файлу.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: readlink
type: function
doc:
<comment>Description:</comment>
  Возвращает файл, на который указывает символическая ссылка
  
  <strong>readlink()</strong> делает то же самое, что и функция C readlink.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  Путь к символической ссылке.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает путь, на который указывает символическая ссылка, либо <info>false</info> в случае
                возникновения ошибки.
                
                Функция завершается ошибкой, если <strong>$path</strong> не является символической ссылкой, кроме
                Windows, где будет возвращён нормализованный путь.

<comment>See Also:</comment>
   * <strong>is_link()</strong>
   * <strong>symlink()</strong>
   * <strong>linkinfo()</strong>


id: realpath
type: function
doc:
<comment>Description:</comment>
  Возвращает канонизированный абсолютный путь к файлу
  
  <strong>realpath()</strong> раскрывает все символические ссылки, переходы типа <return>/./</return>, <return>/../</return> и лишние символы <return>/</return> в пути
  <strong>$path</strong>, возвращая канонизированный абсолютный путь к файлу.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  Проверяемый путь.  Несмотря на то, что путь должен быть указан, переданное значение
                 может быть пустой строкой. В этих случаях значение интерпретируется как текущая
                 рабочая директория.
                 
                 Несмотря на то, что путь должен быть указан, переданное значение может быть пустой
                 строкой. В этих случаях значение интерпретируется как текущая рабочая директория.

<comment>Return:</comment>
  <info>string|false</info>  В случае успешного выполнения возвращает канонизированный абсолютный путь.
                Результирующий путь не содержит символических ссылок и компонентов наподобие <return>/./</return> или
                '<return>/../</return>. Разделители <return>\</return> и <return>/</return> в конце пути также удаляются.
                
                <strong>realpath()</strong> возвращает <info>false</info> при неудаче, например, если файл не существует.
                
                Запускаемый скрипт должен иметь права запуска на всех директориях в проверяемой
                иерархии, иначе <strong>realpath()</strong> вернёт <info>false</info>.
                
                Для регистронезависимых файловых систем, <strong>realpath()</strong> может нормализовать или не
                нормализовать регистр символов.
                
                Функция <strong>realpath()</strong> не будет работать с файлом внутри архива Phar, так как путь может
                быть не реальным, а виртуальным.
                
                В Windows переходы и символические ссылки на каталоги расширяются только на один
                уровень.
                
                Так как тип integer в PHP является целым числом со знаком, и многие платформы
                используют 32-х битные целые числа,
                то некоторые функции файловых систем могут возвращать неожиданные результаты для
                файлов
                размером больше 2 Гб.

<comment>See Also:</comment>
   * <strong>basename()</strong>
   * <strong>dirname()</strong>
   * <strong>pathinfo()</strong>


id: realpath_cache_get
type: function
doc:
<comment>Description:</comment>
  Получает записи из кеша realpath
  
  Получает содержимое кеша реального пути.

<comment>Return:</comment>
  <info>array</info>  Возвращает массив записей из кеша realpath. Ключи являются записями realpath, а значения
         являются массивами данных, содержащих вычисленный путь, время жизни кеша и других данных,
         хранящихся в кеше.

<comment>See Also:</comment>
   * <strong>realpath_cache_size()</strong>


id: realpath_cache_size
type: function
doc:
<comment>Description:</comment>
  Получает размер кеша realpath
  
  Получает объем памяти, используемый кешем realpath.

<comment>Return:</comment>
  <info>int</info>  Возвращает, сколько используется кеш-памяти realpath.

<comment>See Also:</comment>
   * <strong>realpath_cache_get()</strong>
   * 
     Конфигурационная опция
     realpath_cache_size
    


id: recode
type: function
doc:
<comment>Description:</comment>
  Псевдоним recode_string
  
  Функция является псевдонимом:  <strong>recode_string()</strong>.


id: recode_file
type: function
doc:
<comment>Description:</comment>
  Перекодирует из одного файла в другой в соответствии с заданными параметрами
  
  Перекодирует файл, заданный дескриптором <strong>$input</strong> в файл, заданный дескриптором <strong>$output</strong> в
  соответствии с <strong>$request</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$request</strong>  Выбранный тип запроса на перекодировку
  <info>resource</info>  <strong>$input</strong>    Локальный файловый ресурс (<info>resource</info>) <strong>$input</strong>
  <info>resource</info>  <strong>$output</strong>   Локальный файловый ресурс (<info>resource</info>) <strong>$output</strong>

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>false</info>, если возникли какие-либо трудности или <info>true</info> в случае успешного выполнения.

<comment>See Also:</comment>
   * <strong>fopen()</strong>


id: recode_string
type: function
doc:
<comment>Description:</comment>
  Перекодирует строку в соответствии с заданными параметрами
  
  Перекодирует строку <strong>$string</strong> в соответствии с <strong>$request</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$request</strong>  Выбранный тип запроса на перекодировку
  <info>string</info>  <strong>$string</strong>   Строка для перекодировки

<comment>Return:</comment>
  <info>string</info>  Возвращает перекодированную строку (<info>string</info>) или <info>false</info>, если возникли какие-либо проблемы с
          перекодировкой.

<comment>See Also:</comment>
   * 
     Более подробно о запросах на перекодировку читайте в документации, которая
     входит в дистрибутив GNU Recode.
    
   * <strong>mb_convert_encoding()</strong>
   * UConverter::transcode
   * <strong>iconv()</strong>


id: register_shutdown_function
type: function
doc:
<comment>Description:</comment>
  Регистрирует функцию, которая выполнится при завершении работы скрипта
  
  Регистрирует функцию <strong>$callback</strong>, которая выполнится после завершения работы скрипта или при вызове
  функции <strong>exit()</strong>.
  
  Возможна регистрация нескольких подобных функций с помощью <strong>register_shutdown_function()</strong>, при этом
  функции будут выполняться в том порядке, в каком они были зарегистрированы. Если вы вызовете
  <strong>exit()</strong> в одной из зарегистрированных завершающих функций, процесс будет полностью остановлен и
  последующие завершающие функции не будут вызваны.
  
  Завершающие функции также могут сами вызывать <strong>register_shutdown_function()</strong>, чтобы добавить функцию
  выключения в конец очереди.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  Регистрируемая завершающая функция.
                       
                       Завершающие функции выполняются как часть запроса, поэтому можно отправлять
                       данные на вывод из них и получать доступ к буферизации вывода.
  <info>mixed</info>     <strong>$args</strong>      Можно передавать параметры в завершающую функцию, передав дополнительные
                       параметры.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.

<comment>See Also:</comment>
   * auto_append_file
   * <strong>exit()</strong>
   * <strong>fastcgi_finish_request()</strong>
   * Раздел Обработка соединений


id: register_tick_function
type: function
doc:
<comment>Description:</comment>
  Регистрирует функцию для выполнения при каждом тике
  
  Регистрирует функцию <strong>$callback</strong>, которая должна вызываться при каждом тике.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  Регистрируемая функция.
  <info>mixed</info>     <strong>$args</strong>      

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * declare
   * <strong>unregister_tick_function()</strong>


id: rename
type: function
doc:
<comment>Description:</comment>
  Переименовывает файл или директорию
  
  Пытается переименовать <strong>$from</strong> в <strong>$to</strong>, перенося файл между директориями, если необходимо. Если <strong>$to</strong>
  существует, то он будет перезаписан. При переименовании директории с существующим <strong>$to</strong> будет
  выведено предупреждение.

<comment>Param:</comment>
  <info>string</info>         <strong>$from</strong>     Старое имя.
                           
                           Обёртка, используемая в <strong>$from</strong> должна совпадать с обёрткой, используемой в
                           <strong>$to</strong>.
  <info>string</info>         <strong>$to</strong>       Новое имя.  В Windows, если <strong>$to</strong> уже существует, он должен быть доступен
                           для записи. В противном случае <strong>rename()</strong> завершится ошибкой и выдаст
                           <info>E_WARNING</info>.
                           
                           В Windows, если <strong>$to</strong> уже существует, он должен быть доступен для записи. В
                           противном случае <strong>rename()</strong> завершится ошибкой и выдаст <info>E_WARNING</info>.
  <info>resource|null</info>  <strong>$context</strong>  Ресурс (<info>resource</info>) с контекстом потока.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>copy()</strong>
   * <strong>unlink()</strong>
   * <strong>move_uploaded_file()</strong>


id: reset
type: function
doc:
<comment>Description:</comment>
  Устанавливает внутренний указатель массива на его первый элемент
  
  <strong>reset()</strong> перемещает внутренний указатель массива <strong>$array</strong> к его первому элементу и возвращает
  значение первого элемента массива.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>  Входной массив.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает значение первого элемента массива, или <info>false</info>, если массив пуст.
         
         Эта функция может возвращать как логическое значение <info>false</info>, так и значение не типа boolean,
         которое приводится к <info>false</info>. За более подробной информацией обратитесь к разделу Булев тип.
         Используйте оператор === для проверки значения, возвращаемого этой функцией.

<comment>See Also:</comment>
   * <strong>current()</strong>
   * <strong>each()</strong>
   * <strong>end()</strong>
   * <strong>next()</strong>
   * <strong>prev()</strong>
   * <strong>array_key_first()</strong>


id: restore_error_handler
type: function
doc:
<comment>Description:</comment>
  Восстанавливает предыдущий обработчик ошибок
    
  
  Используется после смены обработчика ошибок функцией <strong>set_error_handler()</strong>, чтобы вернуть предыдущий
  обработчик (который может быть как встроенной функцией, так и определённой пользователем).

<comment>Return:</comment>
  <info>true</info>  Функция всегда возвращает <info>true</info>.

<comment>See Also:</comment>
   * <strong>error_reporting()</strong>
   * <strong>set_error_handler()</strong>
   * <strong>restore_exception_handler()</strong>
   * <strong>trigger_error()</strong>


id: restore_exception_handler
type: function
doc:
<comment>Description:</comment>
  Восстанавливает предыдущий обработчик исключений
    
  
  Используется после смены обработчика исключений функцией <strong>set_exception_handler()</strong>, чтобы вернуть
  предыдущий обработчик (который может быть как встроенной функцией, так и определённой
  пользователем).

<comment>Return:</comment>
  <info>true</info>  Функция всегда возвращает <info>true</info>.

<comment>See Also:</comment>
   * <strong>set_exception_handler()</strong>
   * <strong>set_error_handler()</strong>
   * <strong>restore_error_handler()</strong>
   * <strong>error_reporting()</strong>


id: restore_include_path
type: function
doc:
<comment>Description:</comment>
  Восстанавливает изначальное значение настройки конфигурации include_path
    
  
  Восстанавливает исходное значение настройки конфигурации include_path, которое записано в php.ini

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.

<comment>See Also:</comment>
   * <strong>ini_restore()</strong>
   * <strong>get_include_path()</strong>
   * <strong>set_include_path()</strong>
   * <strong>include()</strong>


id: rewind
type: function
doc:
<comment>Description:</comment>
  Сбрасывает курсор файлового указателя
  
  Устанавливает курсор файлового указателя <strong>$stream</strong> в начало файлового потока.
  
  Если вы открыли файл в режиме "записи в конец" ("a" или "a+"), любые данные, которые вы
  записываете, будут дописаны в конец файла, независимо от положения курсора.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  Файловый указатель должен быть доступным и ссылаться на файл, успешно открытый
                     при помощи <strong>fopen()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>fread()</strong>
   * <strong>fseek()</strong>
   * <strong>ftell()</strong>
   * <strong>fwrite()</strong>


id: rewinddir
type: function
doc:
<comment>Description:</comment>
  Сбросить дескриптор каталога
  
  Сбрасывает поток каталога, переданный в параметре <strong>$dir_handle</strong> таким образом, чтобы тот указывал на
  начало каталога.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$dir_handle</strong>  Ресурс (<info>resource</info>) дескриптора каталога, ранее открытый с помощью
                              функции <strong>opendir()</strong>. Если дескриптор каталога не указан, подразумевается
                              последний дескриптор, который был открыт с помощью <strong>opendir()</strong>.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.


id: rmdir
type: function
doc:
<comment>Description:</comment>
  Удаляет директорию
  
  Пытается удалить директорию с именем <strong>$directory</strong>. Директория должна быть пустой и должны иметься
  необходимые для этого права. При неудачном выполнении будет сгенерирована ошибка уровня <info>E_WARNING</info>.

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>  Путь к директории.
  <info>resource|null</info>  <strong>$context</strong>    Ресурс (<info>resource</info>) с контекстом потока.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>is_dir()</strong>
   * <strong>mkdir()</strong>
   * <strong>unlink()</strong>


id: rnp_backend_string
type: function
doc:
<comment>Description:</comment>
  Возвращает имя библиотеки криптографического бэкенда

<comment>Return:</comment>
  <info>string</info>  Строка имени бэкенда. В настоящее время поддерживаются следующие: "Botan" и "OpenSSL".


id: rnp_backend_version
type: function
doc:
<comment>Description:</comment>
  Возвращает версию криптографической библиотеки бэкенда

<comment>Return:</comment>
  <info>string</info>  Возвращает версию в виде строки.


id: rnp_decrypt
type: function
doc:
<comment>Description:</comment>
  Расшифровывает сообщение PGP
  
  Закрытые ключи, используемые для расшифровки, должны быть загружены в объект FFI перед вызовом
  функции. Если использовалось шифрование паролем, то провайдер пароля должен быть установлен
  вызовом функции <strong>rnp_ffi_set_pass_provider()</strong>.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>    Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$input</strong>  Зашифрованное сообщение.

<comment>Return:</comment>
  <info>string|false</info>  Расшифрованное сообщение в случае успешного выполнения или <info>false</info> в случае
                возникновения ошибки.


id: rnp_dump_packets
type: function
doc:
<comment>Description:</comment>
  Выгружает информацию о потоке пакетов OpenPGP в человеко-читаемом формате

<comment>Param:</comment>
  <info>string</info>  <strong>$input</strong>  Входная строка, содержащая данные OpenPGP в двоичном или ASCII-закодированном
                  формате.
  <info>int</info>     <strong>$flags</strong>  Смотрите предопределённые константы <info>RNP_JSON_DUMP_*</info>.

<comment>Return:</comment>
  <info>string|false</info>  Текст, описывающий последовательность пакетов или <info>false</info> в случае возникновения
                ошибки.


id: rnp_dump_packets_to_json
type: function
doc:
<comment>Description:</comment>
  Выгрузка информации о потоке пакетов OpenPGP в строку JSON

<comment>Param:</comment>
  <info>string</info>  <strong>$input</strong>  Входная строка, содержащая данные OpenPGP в двоичном или ASCII-закодированном
                  формате.
  <info>int</info>     <strong>$flags</strong>  Смотрите предопределённые константы <info>RNP_JSON_DUMP_*</info>.

<comment>Return:</comment>
  <info>string|false</info>  Строка JSON с выводом или <info>false</info> в случае возникновения ошибки.


id: rnp_ffi_create
type: function
doc:
<comment>Description:</comment>
  Создаёт объект верхнего уровня, используемый для взаимодействия с библиотекой

<comment>Param:</comment>
  <info>string</info>  <strong>$pub_format</strong>  Формат открытого ключа, RNP_KEYSTORE_GPG или другая константа RNP_KEYSTORE_*.
  <info>string</info>  <strong>$sec_format</strong>  Формат закрытого ключа, RNP_KEYSTORE_GPG или другая константа RNP_KEYSTORE_*.

<comment>Return:</comment>
  <info>RnpFFI|false</info>  Возвращает объект <info>RnpFFI</info> в случае успешного выполнения или <info>false</info> в случае
                возникновения ошибки.


id: rnp_ffi_destroy
type: function
doc:
<comment>Description:</comment>
  Уничтожает объект верхнего уровня, используемый для взаимодействия с библиотекой

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>  Объект FFI, возвращаемый функцией rnp_ffi_create.

<comment>Return:</comment>
  <info>void</info>  


id: rnp_ffi_set_pass_provider
type: function
doc:
<comment>Description:</comment>
  Устанавливает callback-функцию поставщика паролей
  
  Устанавливает callback-функцию поставщика пароля. Функция может запрашивать пароль на стандартном
  входе (если PHP скрипт выполняется в среде командной строки), отображать диалог GUI или
  предоставлять пароль любым другим возможным способом. Запрашиваемые пароли используются для
  шифрования или расшифровки секретных ключей или выполнения операций симметричного
  шифрования/дешифрования.

<comment>Param:</comment>
  <info>RnpFFI</info>    <strong>$ffi</strong>                Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>callable</info>  <strong>$password_callback</strong>  Функция, которая будет вызываться для каждого запроса пароля. У неё
                                следующая сигнатура:
                                <info>bool</info>password_callback<info>string</info><strong>$key_fp</strong><info>string</info><strong>$pgp_context</strong><info>string</info>password</strong>
                                <return>$key_fp</return> - Цифровой отпечаток, если таковой имеется. Может быть
                                пустым.<return>$pgp_context</return> - Строка, описывающая, почему запрашивается
                                ключ.<return>$password</return> - Ссылка на строку пароля, в которой должен храниться
                                предоставленный пароль. Callback-функция должна возвращать <info>true</info>,
                                если пароль был успешно установлен или <info>false</info> в случае возникновения
                                ошибки.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_import_keys
type: function
doc:
<comment>Description:</comment>
  Импортирует ключи из строки PHP в связку ключей и получает JSON с описанием новых/обновлённых
  ключей

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>    Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$input</strong>  Пакеты OpenPGP, содержащие ключ(и), которые нужно загрузить. Могут быть бинарными
                  или ASCII-закодированными.
  <info>int</info>     <strong>$flags</strong>  Смотрите предопределённые константы <info>RNP_LOAD_SAVE_*</info>.

<comment>Return:</comment>
  <info>string|false</info>  JSON-строка с информацией о новых и обновлённых ключах в случае успешного выполнения
                или <info>false</info> в случае возникновения ошибки.


id: rnp_import_signatures
type: function
doc:
<comment>Description:</comment>
  Импортирует автономные подписи в связку ключей и получает JSON с описанием обновлённых ключей

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>    Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$input</strong>  Пакеты OpenPGP, содержащие подписи, которые необходимо импортировать. Могут быть
                  бинарными или ASCII-закодированными.
  <info>int</info>     <strong>$flags</strong>  В настоящее время должно быть 0.

<comment>Return:</comment>
  <info>string|false</info>  JSON-строка с информацией об обновлённых ключах в случае успешного выполнения или
                <info>false</info> в случае возникновения ошибки.


id: rnp_key_export
type: function
doc:
<comment>Description:</comment>
  Экспортирует ключ

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>  Цифровой отпечаток ключа.
  <info>int</info>     <strong>$flags</strong>   Смотрите предопределённые константы <info>RNP_KEY_EXPORT_*</info> (за исключением
                   <info>RNP_KEY_EXPORT_BASE64</info>).

<comment>Return:</comment>
  <info>string|false</info>  OpenPGP-пакеты экспортированного ключа (двоичные или ASCII-закодированные) в случае
                успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_key_export_autocrypt
type: function
doc:
<comment>Description:</comment>
  Экспортирует минимальный ключ для функции автоматического шифрования
     (всего 5 пакетов: ключ, uid, подпись, дочерний ключ шифрования, подпись)

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>        Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>     Цифровой отпечаток первичного ключа.
  <info>string</info>  <strong>$subkey_fp</strong>  Дочерний ключ для экспорта. Может быть пустой строкой, чтобы выбрать первый
                      подходящий дочерний ключ.
  <info>string</info>  <strong>$uid</strong>        Идентификатор пользователя для экспорта. Может быть пустой строкой, если у
                      экспортируемого ключа только один uid.
  <info>int</info>     <strong>$flags</strong>      В настоящее время поддерживается только <info>RNP_KEY_EXPORT_BASE64</info>. Включение
                      приведёт к экспорту данных ключа в кодировке base64 вместо двоичной.

<comment>Return:</comment>
  <info>string|false</info>  OpenPGP-пакеты экспортированного ключа в случае успешного выполнения или <info>false</info> в
                случае возникновения ошибки.


id: rnp_key_export_revocation
type: function
doc:
<comment>Description:</comment>
  Генерирует и экспортирует подпись отзыва первичного ключа
  
  Примечание: чтобы отозвать ключ, вам нужно импортировать подпись в хранилище ключей или
  воспользоваться функцией <strong>rnp_key_revoke()</strong>.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>   Цифровой отпечаток первичного ключа, который должен быть отозван.
  <info>int</info>     <strong>$flags</strong>    <info>RNP_KEY_EXPORT_ARMORED</info> или 0.
  <info>array</info>   <strong>$options</strong>  Ассоциативный массив с опциями.

<comment>Return:</comment>
  <info>string|false</info>  Экспортированная подпись отзыва в случае успешного выполнения или <info>false</info> в случае
                возникновения ошибки.


id: rnp_key_get_info
type: function
doc:
<comment>Description:</comment>
  Получает информацию о ключе

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>  Цифровой отпечаток ключа.

<comment>Return:</comment>
  <info>array|false</info>  Ассоциативный массив с информацией о ключе или <info>false</info> в случае возникновения ошибки.


id: rnp_key_remove
type: function
doc:
<comment>Description:</comment>
  Удаляет ключ из связки (связок)
  
  Примечание: необходимо вызвать функцию <strong>rnp_save_keys()</strong> для записи обновлённых связок ключей.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>  Цифровой отпечаток ключа.
  <info>int</info>     <strong>$flags</strong>   Смотрите константы <info>RNP_KEY_REMOVE_*</info>. Флаг <info>RNP_KEY_REMOVE_SUBKEYS</info> будет работать
                   только для первичного ключа и удалит также все его подключи.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_key_revoke
type: function
doc:
<comment>Description:</comment>
  Отзывает ключ или дочерний ключ путём создания и добавления подписи отзыва
  
  Примечание: необходимо вызвать функцию <strong>rnp_save_keys()</strong> для записи обновлённых связок ключей.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>   Цифровой отпечаток ключа.
  <info>int</info>     <strong>$flags</strong>    В настоящее время должно быть 0.
  <info>array</info>   <strong>$options</strong>  Ассоциативный массив с опциями.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_list_keys
type: function
doc:
<comment>Description:</comment>
  Перечисляет все ключи, присутствующие в связке ключей, по указанному типу идентификатора

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>              Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$identifier_type</strong>  Тип идентификатора ключа ("userid", "keyid", "grip", "fingerprint").

<comment>Return:</comment>
  <info>array|false</info>  Ассоциативный массив, где ключ - строка идентификатора, а значение - цифровой
               отпечаток ключа PGP или <info>false</info> в случае возникновения ошибки.


id: rnp_load_keys
type: function
doc:
<comment>Description:</comment>
  Загружает ключи из строки PHP
  
  Обратите внимание, что для G10 входными данными должен быть каталог (который должен уже
  существовать).

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>  Формат ключа данных (GPG, KBX, G10).
  <info>string</info>  <strong>$input</strong>   Пакеты OpenPGP, содержащие ключ(и), которые нужно загрузить. Могут быть бинарными
                   или ASCII-закодированными.
  <info>int</info>     <strong>$flags</strong>   Смотрите описание флагов RNP_LOAD_SAVE_*.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_load_keys_from_path
type: function
doc:
<comment>Description:</comment>
  Загружает ключи из указанного пути
  
  Обратите внимание, что для G10 входными данными должен быть каталог (который должен уже
  существовать).

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>         Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>      Формат ключа данных (GPG, KBX, G10).
  <info>string</info>  <strong>$input_path</strong>  Файл или каталог, содержащий ключи.
  <info>int</info>     <strong>$flags</strong>       Смотрите описание флагов RNP_LOAD_SAVE_*.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_locate_key
type: function
doc:
<comment>Description:</comment>
  Поиск ключа
  
  Примечание: при поиске по userid проверяются только действительные имена пользователей.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>              Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$identifier_type</strong>  Строка типа идентификатора: "userid", "keyid", "fingerprint", "grip".
  <info>string</info>  <strong>$identifier</strong>       PGP идентификатор пользователя (имя и e-mail) для типа "userid",
                            шестнадцатеричная строка, которая представляет собой идентификатор
                            ключа, цифровой отпечаток или захват ключа соответственно.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает шестнадцатеричный цифровой отпечаток ключа, найденного в случае успешного
                выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_op_encrypt
type: function
doc:
<comment>Description:</comment>
  Шифрует сообщение

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>                Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$message</strong>            Сообщение, которое необходимо зашифровать.
  <info>array</info>   <strong>$recipient_keys_fp</strong>  Массив с отпечатками ключей получателя. Должен присутствовать хотя бы
                              один ключ.
  <info>array</info>   <strong>$options</strong>            Ассоциативный массив с опциями.

<comment>Return:</comment>
  <info>string|false</info>  Зашифрованные данные в случае успешного выполнения или <info>false</info> в случае возникновения
                ошибки.


id: rnp_op_generate_key
type: function
doc:
<comment>Description:</comment>
  Генерирует ключ

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$userid</strong>   PGP User ID - текст, предназначенный для представления имени и адреса
                    электронной почты владельца ключа.
  <info>string</info>  <strong>$key_alg</strong>  Алгоритм первичного ключа (например, 'RSA', 'DSA' и т.д.).
  <info>string</info>  <strong>$sub_alg</strong>  Алгоритм дочернего ключа. Если значение не задано, то дочерний ключ
                    генерироваться не будет.
  <info>array</info>   <strong>$options</strong>  Ассоциативный массив с опциями.

<comment>Return:</comment>
  <info>string|false</info>  Отпечаток сгенерированного первичного ключа или <info>false</info> в случае возникновения ошибки.
                Этот отпечаток может быть использован в дальнейшем для ссылки на ключ в операциях
                подписи и шифрования. Данные ключа хранятся в контексте памяти FFI и могут быть
                сохранены с помощью функции <strong>rnp_save_keys()</strong> или <strong>rnp_save_keys_to_path()</strong>.


id: rnp_op_sign
type: function
doc:
<comment>Description:</comment>
  Выполняет операцию подписания бинарных данных, возвращает присоединённую подпись (подписи)

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>     Данные для подписи.
  <info>array</info>   <strong>$keys_fp</strong>  Массив с цифровыми отпечатками ключей. Должен быть указан хотя бы один ключ.
                    Ключи должны присутствовать в параметре <strong>$ffi</strong>.
  <info>array</info>   <strong>$options</strong>  Ассоциативный массив с опциями.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает данные с присоединённой подписью (подписями) в случае успешного
                выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_op_sign_cleartext
type: function
doc:
<comment>Description:</comment>
  Выполняет операцию подписания текстовых данных, возвращая подписанный открытый текст сообщения

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>     Данные для подписи.
  <info>array</info>   <strong>$keys_fp</strong>  Массив с цифровыми отпечатками ключей. Должен быть указан хотя бы один ключ.
                    Ключи должны присутствовать в параметре <strong>$ffi</strong>.
  <info>array</info>   <strong>$options</strong>  Ассоциативный массив с опциями.

<comment>Return:</comment>
  <info>string|false</info>  Подписанный открытый текст, содержащий исходные данные с дополнительными заголовками
                и ASCII-защищённой подписью в случае успешного выполнения или <info>false</info> в случае
                возникновения ошибки.


id: rnp_op_sign_detached
type: function
doc:
<comment>Description:</comment>
  Выполняет операцию подписания, возвращает отсоединённую подпись (подписи)

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>     Данные для подписи.
  <info>array</info>   <strong>$keys_fp</strong>  Массив с цифровыми отпечатками ключей. Должен быть указан хотя бы один ключ.
                    Ключи должны присутствовать в параметре <strong>$ffi</strong>.
  <info>array</info>   <strong>$options</strong>  Ассоциативный массив с опциями.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает данные с отсоединённой подписью (подписями) в случае успешного выполнения
                или <info>false</info> в случае возникновения ошибки.


id: rnp_op_verify
type: function
doc:
<comment>Description:</comment>
  Проверяет присоединённую подпись или подпись открытого текста

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>   Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>  Подписанные данные.

<comment>Return:</comment>
  <info>array|false</info>  Ассоциативный массив, содержащий информацию о результатах проверки или <info>false</info> в случае
               возникновения ошибки.
               
               Дочерний массив "signatures".


id: rnp_op_verify_detached
type: function
doc:
<comment>Description:</comment>
  Проверяет отсоединённые подписи

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>        Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>       Исходные данные.
  <info>string</info>  <strong>$signature</strong>  Данные отсоединённой подписи.

<comment>Return:</comment>
  <info>array|false</info>  Ассоциативный массив, содержащий информацию о результатах проверки или <info>false</info> в случае
               возникновения ошибки.
               
               Дочерний массив "signatures".


id: rnp_save_keys
type: function
doc:
<comment>Description:</comment>
  Сохраняет ключи в строке PHP
  
  Обратите внимание, что для G10 значением <strong>$output</strong> должен быть каталог (который уже должен
  существовать).

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>  Формат ключа данных (GPG, KBX, G10).
  <info>string</info>  <strong>$output</strong>  Ключевые пакеты будут сохранены в строке, на которую ссылается <strong>$output</strong>.
  <info>int</info>     <strong>$flags</strong>   Смотрите описание флагов RNP_LOAD_SAVE_*.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_save_keys_to_path
type: function
doc:
<comment>Description:</comment>
  Сохраняет ключи по указанному пути
  
  Сохраняет ключи, присутствующие в объекте FFI (загруженном или сгенерированном), в указанном файле
  или каталоге.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>          Объект FFI, возвращаемый функцией rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>       Формат ключа данных (GPG, KBX, G10).
  <info>string</info>  <strong>$output_path</strong>  Путь к файлу или каталогу, в который должны быть сохранены ключи.
  <info>int</info>     <strong>$flags</strong>        Смотрите описание флагов RNP_LOAD_SAVE_*.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rnp_supported_features
type: function
doc:
<comment>Description:</comment>
  Получает поддерживаемые функции в формате JSON
  
  Получение строки в формате JSON, содержащей массив поддерживаемых значений признаков rnp
  (алгоритмов, кривых и т.д.) по типам.

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>  Поддерживаемые значения смотрите в константах RNP_FEATURE_*.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает строку, содержащую JSON-форматированный массив поддерживаемых алгоритмов,
                кривых и т.д. или <info>false</info> в случае возникновения ошибки.


id: rnp_version_string
type: function
doc:
<comment>Description:</comment>
  Возвращает строку версии библиотеки RNP

<comment>Return:</comment>
  <info>string</info>  Возвращает строку версии библиотеки RNP.


id: rnp_version_string_full
type: function
doc:
<comment>Description:</comment>
  Возвращает строку полной версии библиотеки RNP

<comment>Return:</comment>
  <info>string</info>  Возвращает строку полной версии библиотеки RNP.


id: round
type: function
doc:
<comment>Description:</comment>
  Округляет число типа float
  
  Возвращает округлённое значение <strong>$num</strong> с указанной точностью <strong>$precision</strong> (количество цифр после
  запятой). <strong>$precision</strong> может быть отрицательным или нулём (по умолчанию).

<comment>Param:</comment>
  <info>int|float</info>  <strong>$num</strong>        Значение для округления.
  <info>int</info>        <strong>$precision</strong>  Количество десятичных знаков, до которых производится округление
                         
                         Если <strong>$precision</strong> положительный, <strong>$num</strong> округляется до точности <strong>$precision</strong> цифр
                         после запятой.
                         
                         Если <strong>$precision</strong> отрицателен, <strong>$num</strong> округляется до точности <strong>$precision</strong> цифр
                         перед десятичной запятой, то есть до ближайшего кратного pow(10,
                         -$precision), например для <strong>$precision</strong> равной -1 <strong>$num</strong> округляется до
                         десятков, для <strong>$precision</strong> равной -2 до сотен и т.д.
  <info>int</info>        <strong>$mode</strong>       Используйте одну из этих констант для задания способа округления.
                         КонстантыОписание<info>PHP_ROUND_HALF_UP</info> Округляет <strong>$num</strong> от нуля, когда следующий
                         знак находится посередине. То есть округляет 1.5 в 2 и -1.5 в -2.
                         <info>PHP_ROUND_HALF_DOWN</info> Округляет <strong>$num</strong> к нулю, когда следующий знак находится
                         посередине. То есть округляет 1.5 в 1 и -1.5 в -1. <info>PHP_ROUND_HALF_EVEN</info>
                         Округляет <strong>$num</strong> до ближайшего чётного значения, когда следующий знак
                         находится посередине. То есть округляет 1.5 и 2.5 в 2. <info>PHP_ROUND_HALF_ODD</info>
                         Округляет <strong>$num</strong> до ближайшего нечётного значения, когда следующий знак
                         находится посередине. То есть округляет 1.5 в 1 и 2.5 в 3.

<comment>Return:</comment>
  <info>float</info>  Значение округляется до заданного значения <strong>$precision</strong> как <info>float</info>.

<comment>See Also:</comment>
   * <strong>ceil()</strong>
   * <strong>floor()</strong>
   * <strong>number_format()</strong>


id: rpmaddtag
type: function
doc:
<comment>Description:</comment>
  Добавляет тег, полученный в запросе
  
  Добавляет дополнительный извлечённый тег в последующих запросах.

<comment>Param:</comment>
  <info>int</info>  <strong>$tag</strong>  Одна из констант RPMTAG_*, посмотрите страницу константы rpminfo.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>rpminfo()</strong>
   * <strong>rpmdbinfo()</strong>
   * <strong>rpmdbsearch()</strong>


id: rpmdbinfo
type: function
doc:
<comment>Description:</comment>
  Получает информацию от установленного RPM
  
  Получает информацию об установленном пакете из системной базы данных RPM.

<comment>Param:</comment>
  <info>string</info>  <strong>$nevr</strong>  Имя с указанием эпохи, версии и выпуска.
  <info>bool</info>    <strong>$full</strong>  Если <info>true</info>, извлекаются все информационные заголовки для файла, иначе только
                 минимальный набор.

<comment>Return:</comment>
  <info>array|null</info>  Массив (<info>array</info>) массивов (<info>array</info>) информации или NULL в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>rpmaddtag()</strong>


id: rpmdbsearch
type: function
doc:
<comment>Description:</comment>
  Поиск RPM-пакетов
  
  Поиск пакетов в системной базе данных RPM.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  Значение, которое будем искать.
  <info>int</info>     <strong>$rpmtag</strong>   Критерий поиска. Одна из констант RPMTAG_*, смотрите константы rpminfo.
  <info>int</info>     <strong>$rpmmire</strong>  Тип шаблона. Одна из констант RPMMIRE_*, смотрите константы rpminfo. Если меньше
                    0, то критерий должен быть равен значению и по возможности будет использован
                    индекс базы данных.
  <info>bool</info>    <strong>$full</strong>     Если <info>true</info>, то для файла будут извлечены все заголовки. Иначе будет извлечён
                    минимальный набор.

<comment>Return:</comment>
  <info>array|null</info>  Массив массивов с информацией, либо <info>null</info>, в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>rpmaddtag()</strong>


id: rpmgetsymlink
type: function
doc:
<comment>Description:</comment>
  Get target of a symlink
  
  Get target of a symlink.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  Path of the RPM file.
  <info>string</info>  <strong>$name</strong>  Name of the symlink file.

<comment>Return:</comment>
  <info>string|null</info>  A <info>string</info> with target of the symlink, NULL on error, or an empty string if not a
               symlink.


id: rpminfo
type: function
doc:
<comment>Description:</comment>
  Извлечь информацию из RPM-файла
  
  Извлечь информацию о локальном RPM-файле.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>   Путь к файлу.
  <info>bool</info>    <strong>$full</strong>   Если <info>true</info>, то для файла будут извлечены все заголовки. Иначе будет извлечён
                  минимальный набор.
  <info>string</info>  <strong>$error</strong>  Если задан, то в него будет записана информация об ошибке, в случае её
                  возникновения. Это позволит избежать предупреждений во время исполнения.

<comment>Return:</comment>
  <info>array|null</info>  Массив с данными или <info>null</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>rpmaddtag()</strong>


id: rpmvercmp
type: function
doc:
<comment>Description:</comment>
  Сравнивает версии RPM
  
  Сравнивает версий двух RPM.

<comment>Param:</comment>
  <info>string</info>       <strong>$evr1</strong>      Первая версия в формате epoch:version-release
  <info>string</info>       <strong>$evr2</strong>      Вторая версия в формате epoch:version-release
  <info>string|null</info>  <strong>$operator</strong>  Необязательный оператор. Доступные операторы: <return>\<</return>, <return>lt</return>, <return>\<=</return>, <return>le</return>, <return>&gt;</return>, <return>gt</return>, <return>&gt;=</return>, <return>ge</return>, <return>==</return>, <return>=</return>, <return>eq</return>, <return>!=</return>, <return>\<&gt;</return>, <return>ne</return> соответственно.
                          
                          Этот параметр чувствителен к регистру, значение необходимо указывать в
                          нижнем регистре.

<comment>Return:</comment>
  <info>int|bool</info>  Возвращает
            \< 0, если evr1 меньше evr2, &gt; 0, если evr1 больше evr2, и 0, если они идентичны.
            
            Если будет получен необязательный параметр <strong>$operator</strong> функция вернёт <info>true</info>, если сравнение
            будет соответствовать тому, которое задано оператором, иначе <info>false</info>.


id: rrd_create
type: function
doc:
<comment>Description:</comment>
  Создать файл rrd
  
  Создаёт файл rrd.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Имя создаваемого файла.
  <info>array</info>   <strong>$options</strong>   Опции для создания rrd - список строк. Смотрите страницу руководства rrd для
                     полного списка.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rrd_error
type: function
doc:
<comment>Description:</comment>
  Получить последнее сообщение об ошибке
  
  Возвращает последнее сообщение об ошибке.

<comment>Return:</comment>
  <info>string</info>  Последнее сообщение об ошибке.


id: rrd_fetch
type: function
doc:
<comment>Description:</comment>
  Извлечь данные для графика в виде массива
  
  Извлекает данные для графика в виде массива из файла RRD. Функция работает так же как и
  <strong>rrd_graph()</strong>, но данные возвращаются в виде массива, а изображение не создаётся.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Имя файла RRD.
  <info>array</info>   <strong>$options</strong>   Массив опций для спецификации разрешения.

<comment>Return:</comment>
  <info>array</info>  Извлечённый массив данных.


id: rrd_first
type: function
doc:
<comment>Description:</comment>
  Возвращает отметку времени первого образца из файла rrd
  
  Возвращает первый образец данных из указанного RRA файла RRD.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>      Имя файла базы данных RRD.
  <info>int</info>     <strong>$raaindex</strong>  Номер индекса RRA, который должен быть рассмотрен. Значение по умолчанию - 0.

<comment>Return:</comment>
  <info>int</info>  Номер отметки времени unix в виде целого числа или <info>false</info> в случае возникновения ошибки.


id: rrd_graph
type: function
doc:
<comment>Description:</comment>
  Создаёт изображение из данных
  
  Создаёт изображение для определённых данных из RRD-файла.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Имя файла для вывода графика. Это, как правило, заканчивается либо <return>.png</return>, <return>.svg</return>
                     или <return>.eps</return>, в зависимости от нужного формата вывода.
  <info>array</info>   <strong>$options</strong>   Опции для генерации изображения. Смотрите страницу руководства для команды rrd
                     graph для получения всех возможных вариантов. Все опции (определения данных,
                     определения переменных и т.д.) разрешены.

<comment>Return:</comment>
  <info>array</info>  Возвращается массив с информацией о сгенерированном изображении или <info>false</info> в случае
         возникновения ошибки.


id: rrd_info
type: function
doc:
<comment>Description:</comment>
  Получает информацию о файле rrd
  
  Возвращает информацию об указанном файле базы данных RRD.

<comment>Param:</comment>
  <info></info>  <strong>$file</strong>  Имя файла базы данных RRD.

<comment>Return:</comment>
  <info>array</info>  Массив, содержащий информацию об указанном файле RRD или <info>false</info> в случае возникновения
         ошибки.


id: rrd_last
type: function
doc:
<comment>Description:</comment>
  Возвращает отметку времени unix последнего образца
  
  Возвращает отметку времени UNIX последнего обновления базы данных RRD.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Имя файла базы данных RRD.

<comment>Return:</comment>
  <info>int</info>  Целое число, представляющее отметку времени unix самых последних данных из базы данных RRD.


id: rrd_lastupdate
type: function
doc:
<comment>Description:</comment>
  Получает информацию о последних обновлённых данных
  
  Возвращает массив отметки времени UNIX и значения, сохранённых для каждой даты в последнем
  обновлении файла базы данных RRD.

<comment>Param:</comment>
  <info></info>  <strong>$file</strong>  Имя файла базы данных RRD.

<comment>Return:</comment>
  <info>array</info>  Массив информации о последнем обновлении или <info>false</info> в случае возникновения ошибки.


id: rrd_restore
type: function
doc:
<comment>Description:</comment>
  Восстанавливает файл RRD из дампа XML
  
  Восстанавливает файл RRD из дампа XML.

<comment>Param:</comment>
  <info>string</info>  <strong>$xml_file</strong>  Имя файла XML с дампом исходного файла базы данных RRD.
  <info>string</info>  <strong>$rrd_file</strong>  Восстановленное имя файла базы данных RRD.
  <info>array</info>   <strong>$options</strong>   Массив опций для восстановления. Смотрите страницу руководства по rrd restore.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rrd_tune
type: function
doc:
<comment>Description:</comment>
  Настраивает некоторые опции заголовка файла базы данных RRD
  
  Изменить некоторые опции в файле заголовка базы данных RRD. Например, переименовывает источник
  данных и т.д.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Имя файла базы данных RRD.
  <info>array</info>   <strong>$options</strong>   Опции со свойствами файла базы данных RRD, которые будут изменены. Смотрите
                     страницу руководства по rrd tune для подробностей.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rrd_update
type: function
doc:
<comment>Description:</comment>
  Обновляет базу данных RRD
  
  Обновляет файл базы данных RRD. Входные данные - это время, интерполированное в соответствии со
  свойствами файла базы данных RRD.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Имя файла базы данных RRD. Эта база данных будет обновлена.
  <info>array</info>   <strong>$options</strong>   Опции обновления базы данных RRD. Это список строк. Полный список опций
                     смотрите на странице руководства по rrd update для получения полного списка
                     опций.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: rrd_version
type: function
doc:
<comment>Description:</comment>
  Получает информацию о базовой библиотеке rrdtool
  
  Получает информацию о базовой библиотеке rrdtool.

<comment>Return:</comment>
  <info>string</info>  Строка с номером версии rrdtool, например, "1.4.3".


id: rrd_xport
type: function
doc:
<comment>Description:</comment>
  Экспортирует информацию о базе данных RRD
  
  Экспортирует информацию о файле базы данных RRD. Данные могут быть преобразованы в XML-файл с
  помощью пользовательского PHP-скрипта, а затем восстановлены в виде файла базы данных RRD.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  Массив опций для экспорта смотрите страницу руководства по rrd xport.

<comment>Return:</comment>
  <info>array</info>  Массив с информацией о файле базы данных RRD или <info>false</info> в случае возникновения ошибки.


id: rrdc_disconnect
type: function
doc:
<comment>Description:</comment>
  Закрыть любые незавершённые подключения к демону кеширования rrd
  
  Закрыть любые незавершённые подключения к демону кеширования rrd.
  
  Функция автоматически вызывается при завершении всего PHP-процесса. Это зависит от используемого
  SAPI. Например, она вызывается автоматически в конце скрипта командной строки.
  
  Зависит от пользователя, хочет ли он вызвать функцию в конце каждого запроса или нет.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.


id: rsort
type: function
doc:
<comment>Description:</comment>
  Сортирует массив в порядке убывания
  
  Сортирует <strong>$array</strong> по значению в порядке убывания.
  
  Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок.
  До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.
  
  Эта функция присваивает новые ключи элементам <strong>$array</strong>. Она удалит все существующие ключи, а не
  просто переупорядочит их.
  
  Сбрасывает внутренний указатель массива на первый элемент.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  Входной массив.
  <info>int</info>    <strong>$flags</strong>  Необязательный второй параметр <strong>$flags</strong> изменяет поведение сортировки и может
                 принимать следующие значения:
                 
                 Флаги типа сортировки: <info>SORT_REGULAR</info> — обычное сравнение элементов; подробности
                 описаны в разделе операторы сравнения<info>SORT_NUMERIC</info> — числовое сравнение
                 элементов<info>SORT_STRING</info> — строковое сравнение элементов<info>SORT_LOCALE_STRING</info> — сравнение
                 элементов как строки на основе текущего языкового стандарта. Используется языковой
                 стандарт, который можно изменить с помощью <strong>setlocale()</strong> <info>SORT_NATURAL</info> — сравнение
                 элементов как строки, используя "естественный порядок", например <strong>natsort()</strong>
                 <info>SORT_FLAG_CASE</info> — можно объединять (побитовое ИЛИ) с <info>SORT_STRING</info> или <info>SORT_NATURAL</info>
                 для сортировки строк без учёта регистра
                 
                 <info>SORT_REGULAR</info> — обычное сравнение элементов; подробности описаны в разделе операторы
                 сравнения
                 
                 <info>SORT_NUMERIC</info> — числовое сравнение элементов
                 
                 <info>SORT_STRING</info> — строковое сравнение элементов
                 
                 <info>SORT_LOCALE_STRING</info> — сравнение элементов как строки на основе текущего языкового
                 стандарта. Используется языковой стандарт, который можно изменить с помощью
                 <strong>setlocale()</strong>
                 
                 <info>SORT_NATURAL</info> — сравнение элементов как строки, используя "естественный порядок",
                 например <strong>natsort()</strong>
                 
                 <info>SORT_FLAG_CASE</info> — можно объединять (побитовое ИЛИ) с <info>SORT_STRING</info> или <info>SORT_NATURAL</info>
                 для сортировки строк без учёта регистра

<comment>Return:</comment>
  <info>true</info>  Функция всегда возвращает <info>true</info>.

<comment>See Also:</comment>
   * <strong>sort()</strong>
   * <strong>arsort()</strong>
   * <strong>krsort()</strong>
   * Сравнение функций сортировки массивов


id: rtrim
type: function
doc:
<comment>Description:</comment>
  Удаляет пробелы (или другие символы) из конца строки
  
  Эта функция возвращает строку <strong>$string</strong> с удалёнными из конца строки пробельными (или другими)
  символами.
  
  Если второй параметр не передан, <strong>rtrim()</strong> удаляет следующие символы:  " " (ASCII <return>32</return> (<return>0x20</return>)),
  обычный пробел.  "\t" (ASCII <return>9</return> (<return>0x09</return>)), символ табуляции.  "\n" (ASCII <return>10</return> (<return>0x0A</return>)), символ перевода
  строки.  "\r" (ASCII <return>13</return> (<return>0x0D</return>)), символ возврата каретки.  "\0" (ASCII <return>0</return> (<return>0x00</return>)), <return>NULL</return>-байт.  "\v"
  (ASCII <return>11</return> (<return>0x0B</return>)), вертикальная табуляция.
  
  " " (ASCII <return>32</return> (<return>0x20</return>)), обычный пробел.
  
  "\t" (ASCII <return>9</return> (<return>0x09</return>)), символ табуляции.
  
  "\n" (ASCII <return>10</return> (<return>0x0A</return>)), символ перевода строки.
  
  "\r" (ASCII <return>13</return> (<return>0x0D</return>)), символ возврата каретки.
  
  "\0" (ASCII <return>0</return> (<return>0x00</return>)), <return>NULL</return>-байт.
  
  "\v" (ASCII <return>11</return> (<return>0x0B</return>)), вертикальная табуляция.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      Входная строка.
  <info>string</info>  <strong>$characters</strong>  С помощью параметра <strong>$characters</strong> можно также указать удаляемые символы. Просто
                       перечислите все символы, которые вы хотите удалить. Можно указать конструкцию
                       <return>..</return> для обозначения диапазона символов.

<comment>Return:</comment>
  <info>string</info>  Возвращает модифицированную строку.

<comment>See Also:</comment>
   * <strong>trim()</strong>
   * <strong>ltrim()</strong>


id: runkit7_constant_add
type: function
doc:
<comment>Description:</comment>
  Аналогичен define(), но также позволяет определить константу класса

<comment>Param:</comment>
  <info>string</info>  <strong>$constant_name</strong>  Имя объявляемой константы. Либо строка для обозначения глобальной
                          константы, либо <return>classname::constname</return> для определения константы класса.
  <info>mixed</info>   <strong>$value</strong>          Значение константы (NULL, Bool, Long, Double, String, Array или Resource).
  <info>int</info>     <strong>$newVisibility</strong>  Видимость константы для констант класса. По умолчанию общедоступный. Одна
                          из констант <info>RUNKIT7_ACC_*</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>define()</strong>
   * <strong>runkit7_constant_redefine()</strong>
   * <strong>runkit7_constant_remove()</strong>


id: runkit7_constant_redefine
type: function
doc:
<comment>Description:</comment>
  Переопределяет уже определённую константу

<comment>Param:</comment>
  <info>string</info>  <strong>$constant_name</strong>   Константа, которую необходимо переопределить. Либо имя глобальной
                           константы, либо <return>classname::constname</return> для переопределения константы
                           класса.
  <info>mixed</info>   <strong>$value</strong>           Значение, присваиваемое константе.
  <info>int</info>     <strong>$new_visibility</strong>  Новая видимость константы для констант класса. По умолчанию без
                           изменений. Одна из констант <info>RUNKIT7_ACC_*</info>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>runkit7_constant_add()</strong>
   * <strong>runkit7_constant_remove()</strong>


id: runkit7_constant_remove
type: function
doc:
<comment>Description:</comment>
  Удаляет уже определённую константу

<comment>Param:</comment>
  <info>string</info>  <strong>$constant_name</strong>  Константа, которую необходимо удалить. Либо имя глобальной константы, либо
                          <return>classname::constname</return> для удаления константы класса.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>define()</strong>
   * <strong>runkit7_constant_add()</strong>
   * <strong>runkit7_constant_redefine()</strong>


id: runkit7_function_add
type: function
doc:
<comment>Description:</comment>
  Добавляет новую функцию, функция аналогична create_function

<comment>Param:</comment>
  <info>string</info>   <strong>$function_name</strong>        Имя создаваемой функции.
  <info>string</info>   <strong>$argument_list</strong>        Список аргументов, разделённых запятыми.
  <info>string</info>   <strong>$code</strong>                 Код, составляющий функцию.
  <info>Closure</info>  <strong>$closure</strong>              Замыкание (<class>closure</class>), определяющее функцию.
  <info>bool</info>     <strong>$return_by_reference</strong>  Определяет, должна ли функция возвращаться по ссылке.
  <info>string</info>   <strong>$doc_comment</strong>          Документальный комментарий функции.
  <info>string</info>   <strong>$return_type</strong>          Тип возвращаемого значения функции.
  <info>bool</info>     <strong>$is_strict</strong>            Определяет, должна ли функция вести себя так, как если бы она была
                                 объявлена в файле с <return>strict_types=1</return>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>create_function()</strong>
   * <strong>runkit7_function_redefine()</strong>
   * <strong>runkit7_function_copy()</strong>
   * <strong>runkit7_function_rename()</strong>
   * <strong>runkit7_function_remove()</strong>
   * <strong>runkit7_method_add()</strong>


id: runkit7_function_copy
type: function
doc:
<comment>Description:</comment>
  Копирует функцию в новое имя функции

<comment>Param:</comment>
  <info>string</info>  <strong>$source_name</strong>  Имя существующей функции.
  <info>string</info>  <strong>$target_name</strong>  Имя новой функции, в которую нужно скопировать определение.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>runkit7_function_add()</strong>
   * <strong>runkit7_function_redefine()</strong>
   * <strong>runkit7_function_rename()</strong>
   * <strong>runkit7_function_remove()</strong>


id: runkit7_function_redefine
type: function
doc:
<comment>Description:</comment>
  Заменяет определение функции новой реализацией
  
  По умолчанию, только
  пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних
  функций, необходимо
  включить в php.ini опцию <return>runkit.internal_override</return>.

<comment>Param:</comment>
  <info>string</info>   <strong>$function_name</strong>        Имя функции для переопределения.
  <info>string</info>   <strong>$argument_list</strong>        Новый список аргументов, принимаемых функцией.
  <info>string</info>   <strong>$code</strong>                 Реализация нового кода.
  <info>Closure</info>  <strong>$closure</strong>              Замыкание (<class>closure</class>), определяющее функцию.
  <info>bool</info>     <strong>$return_by_reference</strong>  Определяет, должна ли функция возвращаться по ссылке.
  <info>string</info>   <strong>$doc_comment</strong>          Документальный комментарий функции.
  <info>string</info>   <strong>$return_type</strong>          Тип возвращаемого значения функции.
  <info>bool</info>     <strong>$is_strict</strong>            Определяет, должна ли функция вести себя так, как если бы она была
                                 объявлена в файле с <return>strict_types=1</return>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>runkit7_function_add()</strong>
   * <strong>runkit7_function_copy()</strong>
   * <strong>runkit7_function_rename()</strong>
   * <strong>runkit7_function_remove()</strong>
   * <strong>runkit7_method_redefine()</strong>


id: runkit7_function_remove
type: function
doc:
<comment>Description:</comment>
  Удаляет определение функции
  
  По умолчанию, только
  пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних
  функций, необходимо
  включить в php.ini опцию <return>runkit.internal_override</return>.

<comment>Param:</comment>
  <info>string</info>  <strong>$function_name</strong>  Имя удаляемой функции.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>runkit7_function_add()</strong>
   * <strong>runkit7_function_copy()</strong>
   * <strong>runkit7_function_redefine()</strong>
   * <strong>runkit7_function_rename()</strong>


id: runkit7_function_rename
type: function
doc:
<comment>Description:</comment>
  Изменяет имя функции
  
  По умолчанию, только
  пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних
  функций, необходимо
  включить в php.ini опцию <return>runkit.internal_override</return>.

<comment>Param:</comment>
  <info>string</info>  <strong>$source_name</strong>  Текущее имя функции.
  <info>string</info>  <strong>$target_name</strong>  Новое имя функции.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>runkit7_function_add()</strong>
   * <strong>runkit7_function_copy()</strong>
   * <strong>runkit7_function_redefine()</strong>
   * <strong>runkit7_function_remove()</strong>


id: runkit7_import
type: function
doc:
<comment>Description:</comment>
  Обрабатывает функцию импорта файла PHP и определения классов, при необходимости перезаписывая
  
  Функция подобна <strong>include()</strong>. Однако любой код, находящийся за пределами функции или класса, просто
  игнорируется. Кроме того, в зависимости от значения <strong>$flags</strong>, любые функции или классы, которые уже
  существуют в текущей запущенной среде, могут быть автоматически перезаписаны их новыми
  определениями.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Имя файла для импорта определений функций и классов.
  <info>int</info>     <strong>$flags</strong>     Побитовое ИЛИ констант <return>RUNKIT7_IMPORT_*</return>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: runkit7_method_add
type: function
doc:
<comment>Description:</comment>
  Динамически добавляет новый метод в заданный класс

<comment>Param:</comment>
  <info>string</info>   <strong>$class_name</strong>     Класс, в котором нужно добавить метод.
  <info>string</info>   <strong>$method_name</strong>    Имя метода, который нужно добавить.
  <info>string</info>   <strong>$argument_list</strong>  Разделённый запятыми список аргументов для нового метода.
  <info>string</info>   <strong>$code</strong>           Код, который будет выполняться при вызове <strong>$method_name</strong>.
  <info>Closure</info>  <strong>$closure</strong>        Замыкание (<class>closure</class>), определяющее метод.
  <info>int</info>      <strong>$flags</strong>          Метод может быть <info>RUNKIT7_ACC_PUBLIC</info>, <info>RUNKIT7_ACC_PROTECTED</info> или
                           <info>RUNKIT7_ACC_PRIVATE</info>, и, при необходимости, объединён с помощью побитового
                           ИЛИ с <info>RUNKIT7_ACC_STATIC</info>.
  <info>string</info>   <strong>$doc_comment</strong>    Документальный комментарий метода.
  <info>string</info>   <strong>$return_type</strong>    Тип возвращаемого значения метода.
  <info>bool</info>     <strong>$is_strict</strong>      Определяет, будет ли метод вести себя так, как если бы он был объявлен в
                           файле с <return>strict_types=1</return>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>runkit7_method_copy()</strong>
   * <strong>runkit7_method_redefine()</strong>
   * <strong>runkit7_method_remove()</strong>
   * <strong>runkit7_method_rename()</strong>
   * <strong>runkit7_function_add()</strong>


id: runkit7_method_copy
type: function
doc:
<comment>Description:</comment>
  Копирует метод из одного класса в другой

<comment>Param:</comment>
  <info>string</info>  <strong>$destination_class</strong>        Целевой класс для скопированного метода.
  <info>string</info>  <strong>$destination_method_name</strong>  Название метода назначения.
  <info>string</info>  <strong>$source_class</strong>             Исходный класс скопированного метода.
  <info>string</info>  <strong>$source_method_name</strong>       Имя метода для копирования из исходного класса. Если этот
                                    параметр опущен, предполагается значение
                                    <strong>$destination_method_name</strong>.

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * <strong>runkit7_method_add()</strong>
   * <strong>runkit7_method_redefine()</strong>
   * <strong>runkit7_method_remove()</strong>
   * <strong>runkit7_method_rename()</strong>
   * <strong>runkit7_function_copy()</strong>


id: runkit7_method_redefine
type: function
doc:
<comment>Description:</comment>
  Динамически изменяет код заданного метода

<comment>Param:</comment>
  <info>string</info>   <strong>$class_name</strong>     Класс, в котором нужно переопределить метод.
  <info>string</info>   <strong>$method_name</strong>    Имя метода, который нужно переопределить.
  <info>string</info>   <strong>$argument_list</strong>  Разделённый запятыми список аргументов для переопределённого метода.
  <info>string</info>   <strong>$code</strong>           Новый код, который будет выполняться при вызове <strong>$method_name</strong>.
  <info>Closure</info>  <strong>$closure</strong>        Замыкание (<class>closure</class>), определяющее метод.
  <info>int</info>      <strong>$flags</strong>          Переопределённый метод может быть <info>RUNKIT7_ACC_PUBLIC</info>,
                           <info>RUNKIT7_ACC_PROTECTED</info> или <info>RUNKIT7_ACC_PRIVATE</info>, и, при необходимости,
                           объединён с помощью побитового ИЛИ с <info>RUNKIT7_ACC_STATIC</info>.
  <info>string</info>   <strong>$doc_comment</strong>    Документальный комментарий метода.
  <info>string</info>   <strong>$return_type</strong>    Тип возвращаемого значения метода.
  <info>bool</info>     <strong>$is_strict</strong>      Определяет, будет ли метод вести себя так, как если бы он был объявлен в
                           файле с <return>strict_types=1</return>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>runkit7_method_add()</strong>
   * <strong>runkit7_method_copy()</strong>
   * <strong>runkit7_method_remove()</strong>
   * <strong>runkit7_method_rename()</strong>
   * <strong>runkit7_function_redefine()</strong>


id: runkit7_method_remove
type: function
doc:
<comment>Description:</comment>
  Динамически удаляет заданный метод
  
  Эта функция не может быть
  использована для влияния на работающие в данный момент (или цепные) методы.

<comment>Param:</comment>
  <info>string</info>  <strong>$class_name</strong>   Класс, в котором нужно удалить метод.
  <info>string</info>  <strong>$method_name</strong>  Имя удаляемого метода.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>runkit7_method_add()</strong>
   * <strong>runkit7_method_copy()</strong>
   * <strong>runkit7_method_redefine()</strong>
   * <strong>runkit7_method_rename()</strong>
   * <strong>runkit7_function_remove()</strong>


id: runkit7_method_rename
type: function
doc:
<comment>Description:</comment>
  Динамически изменяет имя заданного метода
  
  Эта функция не может быть
  использована для влияния на работающие в данный момент (или цепные) методы.

<comment>Param:</comment>
  <info>string</info>  <strong>$class_name</strong>          Класс, в котором нужно переименовать метод.
  <info>string</info>  <strong>$source_method_name</strong>  Метод, который нужно переименовать.
  <info>string</info>  <strong>$target_method_name</strong>  Новое имя метода.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>runkit7_method_add()</strong>
   * <strong>runkit7_method_copy()</strong>
   * <strong>runkit7_method_redefine()</strong>
   * <strong>runkit7_method_remove()</strong>
   * <strong>runkit7_function_rename()</strong>


id: runkit7_object_id
type: function
doc:
<comment>Description:</comment>
  Возвращает дескриптор целочисленного объекта для данного объекта
  
  Функция эквивалентна <strong>spl_object_id()</strong>.
  
  Функция возвращает уникальный идентификатор объекта. Идентификатор объекта уникален на протяжении
  всего времени существования объекта. После уничтожения объекта его идентификатор может быть
  повторно использован для других объектов. Поведение похоже на <strong>spl_object_hash()</strong>.

<comment>Param:</comment>
  <info>object</info>  <strong>$obj</strong>  Любой объект.

<comment>Return:</comment>
  <info>int</info>  Целочисленный идентификатор, уникальный для каждого существующего в данный момент объекта и
       всегда одинаковый для каждого объекта.

<comment>See Also:</comment>
   * <strong>spl_object_id()</strong>


id: runkit7_superglobals
type: function
doc:
<comment>Description:</comment>
  Возвращает числовой индексированный массив зарегистрированных суперглобальных переменных

<comment>Return:</comment>
  <info>array</info>  Возвращает числовой индексированный массив зарегистрированных суперглобальных переменных.
         Например: _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES.

<comment>See Also:</comment>
   * Область видимости переменной


id: runkit7_zval_inspect
type: function
doc:
<comment>Description:</comment>
  Возвращает информацию о переданном значении с типами данных, количеством ссылок и так далее

<comment>Param:</comment>
  <info>string</info>  <strong>$value</strong>  Значение, чтобы вернуть представление.

<comment>Return:</comment>
  <info>array</info>  Массив, возвращаемый этой функцией, содержит следующие элементы: <return>address</return><return>refcount</return>
         (необязательный)<return>is_ref</return> (необязательный)<return>type</return>

<comment>See Also:</comment>
   * Объяснение ссылок
   * Объяснение ссылок (Дерик Ретанс)


id: sapi_windows_cp_conv
type: function
doc:
<comment>Description:</comment>
  Преобразовать строку из одной кодовой страницы в другую
  
  Преобразовать строку из одной кодовой страницы в другую.

<comment>Param:</comment>
  <info>int|string</info>  <strong>$in_codepage</strong>   Кодовая страница строки <strong>$subject</strong>. Либо имя или идентификатор кодовой
                             страницы.
  <info>int|string</info>  <strong>$out_codepage</strong>  Кодовая страница для преобразования строки <strong>$subject</strong>. Либо имя или
                             идентификатор кодовой страницы.
  <info>string</info>      <strong>$subject</strong>       Строка для преобразования.

<comment>Return:</comment>
  <info>string|null</info>  Строка <strong>$subject</strong>, преобразованная в <strong>$out_codepage</strong> или <info>null</info> в случае возникновения
               ошибки.

<comment>See Also:</comment>
   * <strong>sapi_windows_cp_get()</strong>
   * <strong>iconv()</strong>


id: sapi_windows_cp_get
type: function
doc:
<comment>Description:</comment>
  Получить текущую кодовую страницу
  
  Получить текущую кодовую страницу.

<comment>Param:</comment>
  <info>string</info>  <strong>$kind</strong>  Тип кодовой страницы операционной системы, которую нужно получить: либо <return>'ansi'</return>,
                 либо <return>'oem'</return>. Любое другое значение относится к текущей кодовой странице процесса.

<comment>Return:</comment>
  <info>int</info>  Если <strong>$kind</strong> равен <return>'ansi'</return>, возвращается текущая кодовая страница ANSI операционной системы.
       Если <strong>$kind</strong> равен <return>'oem'</return>, возвращается текущая кодовая страница OEM операционной системы. В
       противном случае возвращается текущая кодовая страница процесса.

<comment>See Also:</comment>
   * <strong>sapi_windows_cp_set()</strong>


id: sapi_windows_cp_is_utf8
type: function
doc:
<comment>Description:</comment>
  Указывает, совместима ли кодовая страница с UTF-8
  
  Указывает, совместима ли кодовая страница текущего процесса с UTF-8.

<comment>Return:</comment>
  <info>bool</info>  Возвращает, совместима ли кодовая страница текущего процесса с UTF-8.

<comment>See Also:</comment>
   * <strong>sapi_windows_cp_get()</strong>


id: sapi_windows_cp_set
type: function
doc:
<comment>Description:</comment>
  Установить кодовую страницу процесса
  
  Установить кодовую страницу текущего процесса.

<comment>Param:</comment>
  <info>int</info>  <strong>$codepage</strong>  Идентификатор кодовой страницы.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>sapi_windows_cp_get()</strong>


id: sapi_windows_generate_ctrl_event
type: function
doc:
<comment>Description:</comment>
  Послать событие CTRL другому процессу
  
  Послать событие CTRL другому процессу в той же группе процессов.

<comment>Param:</comment>
  <info>int</info>  <strong>$event</strong>  Событие <return>CTRL</return>; <info>PHP_WINDOWS_EVENT_CTRL_C</info> или <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.
  <info>int</info>  <strong>$pid</strong>    Идентификатор процесса, которому необходимо послать событие. Если задано как <return>0</return>, то
               событие будет послано всем процессам в группе.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>proc_open()</strong>
   * <strong>sapi_windows_set_ctrl_handler()</strong>


id: sapi_windows_set_ctrl_handler
type: function
doc:
<comment>Description:</comment>
  Установить или удалить обработчик события CTRL
  
  Устанавливает или удаляет обработчик события <return>CTRL</return>, который позволит процессам Windows CLI
  перехватывать или игнорировать события <return>CTRL+C</return> и <return>CTRL+BREAK</return>. Обратите внимание, что в многопоточном
  окружение это возможно только при вызове из главного потока.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$handler</strong>  Функция обратного вызова, которая будет установлена или удалена. Эта
                           функция будет вызываться при наступлении событий <return>CTRL+C</return> и <return>CTRL+BREAK</return>.
                           Функция должна иметь следующую сигнатуру: <info>void</info>handler<info>int</info><strong>$event</strong> <strong>$event</strong>
                           Полученное событие <return>CTRL</return>; <info>PHP_WINDOWS_EVENT_CTRL_C</info> или
                           <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.  Установка параметра <strong>$handler</strong> в значение
                           <info>null</info> приведёт к игнорированию событий <return>CTRL+C</return>, но не <return>CTRL+BREAK</return>.
                           
                           Полученное событие <return>CTRL</return>; <info>PHP_WINDOWS_EVENT_CTRL_C</info> или
                           <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.
  <info>int</info>            <strong>$event</strong>    Полученное событие <return>CTRL</return>; <info>PHP_WINDOWS_EVENT_CTRL_C</info> или
                           <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.
  <info>bool</info>           <strong>$add</strong>      Если <info>true</info>, то обработчик будет установлен. Если <info>false</info>, то удалён.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>sapi_windows_generate_ctrl_event()</strong>


id: sapi_windows_vt100_support
type: function
doc:
<comment>Description:</comment>
  Получить или установить поддержку VT100 для заданного потока, связанного с буфером вывода консоли
  Windows
  
  Если параметр <strong>$enable</strong> равен <info>null</info>, функция возвращает <info>true</info> или <info>false</info> в зависимости от того,
  разрешены или нет управляющие последовательности VT100 для <strong>$stream</strong>
  
  Если параметр <strong>$enable</strong> является логическим значением (<info>bool</info>), функция попытается включить или
  выключить функциональность VT100 для потока <strong>$stream</strong>. В этом случае функция вернёт <info>true</info> или <info>false</info> в
  зависимости от успешности выполнения.
  
  При старте, PHP пытается включить VT100 для потоков <info>STDOUT</info> и <info>STDERR</info>. Но если, например, эти потоки
  перенаправлены в файл, то поддержка VT100 может не включиться.
  
  Если включена поддержка VT100, то можно использовать управляющие последовательности, так как они
  известны терминалу. Они позволяют изменять вывод терминала. В Windows эти последовательности
  известны как "Console Virtual Terminal Sequences".
  
  Эта функция использует реализацию флага <info>ENABLE_VIRTUAL_TERMINAL_PROCESSING</info> в Windows 10 API,
  следовательно функциональность VT100 может быть недоступна в более старых версиях Windows.

<comment>Param:</comment>
  <info>resource</info>   <strong>$stream</strong>  Поток, с которым будет работать функция.
  <info>bool|null</info>  <strong>$enable</strong>  Если является логическим значением (<info>bool</info>), то должно быть либо <info>true</info>, либо
                      <info>false</info>, для включения и отключения VT100 соответственно.

<comment>Return:</comment>
  <info>bool</info>  Если параметр <strong>$enable</strong> равен <info>null</info>, функция возвращает <info>true</info> или <info>false</info> в зависимости от того,
        разрешены или нет управляющие последовательности VT100
        
        Если параметр <strong>$enable</strong> является логическим значением (<info>bool</info>): Возвращает <info>true</info> в случае
        успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: scandir
type: function
doc:
<comment>Description:</comment>
  Получает список файлов и каталогов, расположенных по указанному пути
  
  Возвращает массив (<info>array</info>), содержащий имена файлов и каталогов, расположенных по пути, переданном
  в параметре <strong>$directory</strong>.

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>      Сканируемый каталог.
  <info>int</info>            <strong>$sorting_order</strong>  По умолчанию сортировка производится в алфавитном порядке по
                                 возрастанию. Если необязательный параметр <strong>$sorting_order</strong> установлен
                                 в значение <info>SCANDIR_SORT_DESCENDING</info>, сортировка производится в
                                 алфавитном порядке по убыванию. Если же он установлен в значение
                                 <info>SCANDIR_SORT_NONE</info>, то сортировка не производится.
  <info>resource|null</info>  <strong>$context</strong>        За описанием параметра <strong>$context</strong> обратитесь к разделу Потоки данного
                                 руководства.

<comment>Return:</comment>
  <info>array|false</info>  Возвращает массив (<info>array</info>) имён файлов в случае успешного выполнения или <info>false</info> в
               случае возникновения ошибки. Если <strong>$directory</strong> не является каталогом, возвращается
               <info>false</info> и генерируется сообщение об ошибке уровня <info>E_WARNING</info>.

<comment>See Also:</comment>
   * <strong>opendir()</strong>
   * <strong>readdir()</strong>
   * <strong>glob()</strong>
   * <strong>is_dir()</strong>
   * <strong>sort()</strong>


id: scoutapm_get_calls
type: function
doc:
<comment>Description:</comment>
  Возвращает список вызовов, которые произошли
  
  Возвращает список всех вызовов использованных функций с момента последнего вызова
  <strong>scoutapm_get_calls()</strong>. Список очищается каждый раз при вызове функции.

<comment>Return:</comment>
  <info>array</info>  <strong>scoutapm_get_calls()</strong> возвращает массив, содержащий список всех записанных вызовов
         использованных функций.


id: scoutapm_list_instrumented_functions
type: function
doc:
<comment>Description:</comment>
  Список функций, которые scoutapm будет использовать
  
  Возвращает список функций, которые модуль будет использовать

<comment>Return:</comment>
  <info>array</info>  <strong>scoutapm_list_instrumented_functions()</strong> возвращает массив, содержащий список всех функций,
         которые модуль scoutapm может использовать в текущей установке.


id: seaslog_get_author
type: function
doc:
<comment>Description:</comment>
  Получает автора SeasLog

<comment>Return:</comment>
  <info>string</info>  Возвращает автора SeasLog в виде строки.


id: seaslog_get_version
type: function
doc:
<comment>Description:</comment>
  Получает версию SeasLog

<comment>Return:</comment>
  <info>string</info>  Возвращает версию SeasLog (SEASLOG_VERSION) в виде строки.


id: sem_acquire
type: function
doc:
<comment>Description:</comment>
  Захват семафора
  
  <strong>sem_acquire()</strong> блокируется (при необходимости) до момента захвата семафора. Процесс, который
  попытается захватить семафор уже захваченный им же будет заблокирован навсегда, если будет
  превышено максимальное значение семафора.
  
  После выполнения запроса, все захваченные, но явно не освобождённые процессом, семафоры
  освобождаются автоматически и генерируется предупреждение.

<comment>Param:</comment>
  <info>SysvSemaphore</info>  <strong>$semaphore</strong>     <strong>$semaphore</strong> - семафор.
  <info>bool</info>           <strong>$non_blocking</strong>  Указывает, должен ли процесс ждать для захвата семафора. Если
                                установлено в <info>true</info>, вызов немедленно вернёт <info>false</info>, если семафор не
                                может быть захвачен.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>sem_get()</strong>
   * <strong>sem_release()</strong>


id: sem_get
type: function
doc:
<comment>Description:</comment>
  Получение идентификатора семафора
  
  <strong>sem_get()</strong> возвращает идентификатор, который может быть использован для доступа к семафору System
  V, по заданному значению <strong>$key</strong>.
  
  Последующие вызовы <strong>sem_get()</strong> для того же самого ключа будут возвращать другие идентификаторы,
  однако все они будут ссылаться на один и тот же семафор.
  
  Если <strong>$key</strong> равен <return>0</return>, то для каждого вызова <strong>sem_get()</strong> создаётся новый приватный семафор.

<comment>Param:</comment>
  <info>int</info>   <strong>$key</strong>           
  <info>int</info>   <strong>$max_acquire</strong>   Число процессов, которые могут одновременно использовать семафор задаётся
                       через <strong>$max_acquire</strong>.
  <info>int</info>   <strong>$permissions</strong>   Права доступа к семафору. В действительности, устанавливается только если
                       процесс является единственным использующим семафор.
  <info>bool</info>  <strong>$auto_release</strong>  Определяет, должен ли семафор автоматически освобождаться при завершении
                       работы.

<comment>Return:</comment>
  <info>SysvSemaphore|false</info>  При успешном завершении возвращается положительный идентификатор семафора,
                       или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>sem_acquire()</strong>
   * <strong>sem_release()</strong>
   * <strong>ftok()</strong>


id: sem_release
type: function
doc:
<comment>Description:</comment>
  Освобождение семафора
  
  <strong>sem_release()</strong> освобождает семафор, если он был захвачен вызывающим процессом, в противном случае
  генерируется предупреждение.
  
  После освобождения семафор может быть захвачен повторно через вызов <strong>sem_acquire()</strong>.

<comment>Param:</comment>
  <info>SysvSemaphore</info>  <strong>$semaphore</strong>  Семафор, возвращённый <strong>sem_get()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>sem_get()</strong>
   * <strong>sem_acquire()</strong>


id: sem_remove
type: function
doc:
<comment>Description:</comment>
  Удаление семафора
  
  <strong>sem_remove()</strong> удаляет указанный семафор.
  
  После удаления семафора он становится недоступным.

<comment>Param:</comment>
  <info>SysvSemaphore</info>  <strong>$semaphore</strong>  Семафор, возвращённый <strong>sem_get()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>sem_get()</strong>
   * <strong>sem_release()</strong>
   * <strong>sem_acquire()</strong>


id: serialize
type: function
doc:
<comment>Description:</comment>
  Генерирует пригодное для хранения представление переменной
  
  Генерирует пригодное для хранения представление переменной.
  
  Это полезно для хранения или передачи значений PHP между скриптами без потери их типа и структуры.
  
  Для превращения сериализованной строки обратно в PHP-значение, используйте функцию <strong>unserialize()</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  Значение, которое необходимо сериализовать. <strong>serialize()</strong> обрабатывает все типы,
                 кроме <info>resource</info> и некоторых типов <info>object</info> (смотрите примечание ниже). Возможно также
                 сериализовать массивы, которые содержат ссылки на себя. Циклические ссылки внутри
                 сериализуемого массива/объекта также сохраняются. Любые другие ссылки будут
                 потеряны.
                 
                 При сериализации объекта PHP пытается вызвать магические методы __serialize() или
                 __sleep() перед сериализацией. Это делается для того, чтобы позволить объекту в
                 последний момент произвести очистку и тому подобные операции перед сериализацией.
                 Аналогично, когда объект восстанавливается функцией <strong>unserialize()</strong>, вызывается
                 магический метод __unserialize() или __wakeup().
                 
                 Начало имён закрытых членов объекта дополняются именем класса, а начало имён
                 защищённых членов символом '*'. Эти дополненные значения окружаются нулевым байтом
                 (0x00) с обеих сторон.

<comment>Return:</comment>
  <info>string</info>  Возвращает строку, содержащую потоковое представление переменной <strong>$value</strong>, которая может
          быть сохранена где угодно.
          
          Обратите внимание, что это бинарная строка, которая может включать нулевые байты, и её
          нужно хранить и обрабатывать соответствующим образом. Например, вывод функции <strong>serialize()</strong>
          лучше хранить в BLOB-поле базы данных, а не в полях типа CHAR или TEXT.

<comment>See Also:</comment>
   * <strong>unserialize()</strong>
   * <strong>var_export()</strong>
   * <strong>json_encode()</strong>
   * Сериализация объектов
   * __sleep()
   * __wakeup()
   * __serialize()
   * __unserialize()


id: session_abort
type: function
doc:
<comment>Description:</comment>
  Отменяет изменения в массиве сессии и завершает её
  
  <strong>session_abort()</strong> завершает сессию без сохранения данных. Таким образом, сохраняются исходные
  значения сессии.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * $_SESSION
   * 
     Директива конфигурации session.auto_start
    
   * <strong>session_start()</strong>
   * <strong>session_reset()</strong>
   * <strong>session_commit()</strong>


id: session_cache_expire
type: function
doc:
<comment>Description:</comment>
  Получает и/или устанавливает срок действия текущего кеша
  
  <strong>session_cache_expire()</strong> возвращает текущее значение настройки <return>session.cache_expire</return>.
  
  Срок действия сбрасывается до значения по умолчанию (180), хранящегося в session.cache_expire во
  время запроса. Таким образом, нужно вызывать <strong>session_cache_expire()</strong> для каждого запроса (и до
  вызова <strong>session_start()</strong>).

<comment>Param:</comment>
  <info>int|null</info>  <strong>$value</strong>  Если <strong>$value</strong> задан и не равен <info>null</info>, текущее время жизни заменяется на <strong>$value</strong>.
                    
                     Настройка <strong>$value</strong> имеет значение только, если для <return>session.cache_limiter</return>
                    установлено значение, отличное от <return>nocache</return>.
                    
                    Настройка <strong>$value</strong> имеет значение только, если для <return>session.cache_limiter</return>
                    установлено значение, отличное от <return>nocache</return>.

<comment>Return:</comment>
  <info>int|false</info>  Возвращает текущую настройку <return>session.cache_expire</return>. Возвращаемое значение должно
             рассматриваться в минутах, по умолчанию - 180. В случае, если изменить значение не
             удалось, возвращается <info>false</info>.

<comment>See Also:</comment>
   * session.cache_expire
   * session.cache_limiter
   * <strong>session_cache_limiter()</strong>


id: session_cache_limiter
type: function
doc:
<comment>Description:</comment>
  Получить и/или установить текущий режим кеширования
  
  <strong>session_cache_limiter()</strong> возвращает имя текущего режима кеширования.
  
  Режим кеширования определяет, какие HTTP-заголовки управления кешем посылать клиенту. Эти
  заголовки определяют, какими правилами кеширования контента должны руководствоваться клиент и
  промежуточные прокси. Установка ограничителя в значение <return>nocache</return> запрещает любое кеширование.
  Значение <return>public</return> разрешает кеширование как на стороне клиента, так и на прокси-серверах. <return>private</return>
  запрещает кеширование прокси-серверам, но разрешает клиенту.
  
  Если в режиме <return>private</return> послать заголовок Expire, то это может привести некоторые браузеры, включая
  Mozilla, в замешательство. Вы можете обойти эту проблему, используя режим <return>private_no_expire</return>. В
  этом режиме заголовок <return>Expire</return> никогда не будет послан.
  
  Установка режима кеширования в <return>''</return> отключает автоматическую отправку кеш-заголовков.
  
  Во время начала запроса режим кеширования сбрасывается до значения по умолчанию, хранящегося в
  session.cache_limiter. Таким образом, вам необходимо вызывать <strong>session_cache_limiter()</strong> для каждого
  запроса (перед тем, как вызвана функция <strong>session_start()</strong>).

<comment>Param:</comment>
  <info>string|null</info>  <strong>$value</strong>  Если <strong>$value</strong> указан и не равен <info>null</info>, имя текущего режима кеширования
                       изменяется на новое значение.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает имя текущего режима кеширования. В случае, если изменить значение не
                удалось, возвращается <info>false</info>.

<comment>See Also:</comment>
   * session.cache_limiter


id: session_commit
type: function
doc:
<comment>Description:</comment>
  Псевдоним session_write_close
  
  Функция является псевдонимом:  <strong>session_write_close()</strong>.


id: session_create_id
type: function
doc:
<comment>Description:</comment>
  Создаёт новый идентификатор сессии
  
  <strong>session_create_id()</strong> используется для создания нового идентификатора текущей сессии. Возвращает
  идентификатор сессии, который не подвержен коллизиям.
  
  При неактивной сессии проверка на коллизии не осуществляется.
  
  Идентификатор сессии создаётся в соответствии с настройками php.ini.
  
  Важно использовать тот же идентификатор пользователя на вашем веб-сервере, что и для скрипта
  задачи сборщика мусора. В противном случае, у вас могут возникнуть проблемы доступа, особенно с
  дескриптором сохранения файлов.

<comment>Param:</comment>
  <info>string</info>  <strong>$prefix</strong>  Если указан параметр <strong>$prefix</strong>, то новый идентификатор сессии будет с префиксом
                   <strong>$prefix</strong>. Не все символы возможно использовать в идентификаторе сессии.
                   Допускается использовать только символы из диапазона: <return>a-z A-Z 0-9 , (запятая)</return> и <return>-
                   (минус)</return>.

<comment>Return:</comment>
  <info>string|false</info>  <strong>session_create_id()</strong> возвращает новый, не подверженный коллизиям, идентификатор
                текущей сессии. Если используется при неактивной сессии, проверка на коллизии
                пропускается. В случае неудачи возвращается <info>false</info>.

<comment>See Also:</comment>
   * <strong>session_regenerate_id()</strong>
   * <strong>session_start()</strong>
   * session.use_strict_mode
   * SessionHandler::create_sid


id: session_decode
type: function
doc:
<comment>Description:</comment>
  Декодирует данные сессии из закодированной строки сессии
  
  <strong>session_decode()</strong> декодирует сериализованные данные сессии, переданные в <strong>$data</strong> и заполняет
  суперглобальный массив $_SESSION полученным результатом.
  
  По умолчанию используется внутренний метод десериализации PHP, и результат будет отличаться от
  формата, возвращаемого функцией <strong>unserialize()</strong>. Метод сериализации может быть установлен с помощью
  session.serialize_handler.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Закодированные данные, которые необходимо сохранить.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>session_encode()</strong>
   * session.serialize_handler


id: session_destroy
type: function
doc:
<comment>Description:</comment>
  Уничтожает все данные сессии 
  
  <strong>session_destroy()</strong> уничтожает все данные, связанные с текущей сессией. Данная функция не удаляет
  какие-либо глобальные переменные, связанные с сессией и не удаляет сессионные cookie. Чтобы вновь
  использовать переменные сессии, следует вызвать <strong>session_start()</strong>.
  
  Нет необходимости вызывать <strong>session_destroy()</strong> в обычном коде. Очищайте массив $_SESSION вместо
  удаления данных сессии.
  
  Чтобы полностью удалить сессию, также необходимо удалить и её идентификатор. Если для передачи
  идентификатора сессии используются cookie (поведение по умолчанию), то сессионные cookie также
  должны быть удалены. Для этого можно использовать <strong>setcookie()</strong>.
  
  При включённой опции session.use_strict_mode, вам не нужно удалять устаревшие cookie
  идентификатора сессии. В этом нет необходимости, потому что модуль сессии не примет cookie
  идентификатора сессии, если с этим идентификатором сессии нет связанных данных, и модуль сессии
  установит новый cookie идентификатора сессии. Рекомендуется включать опцию session.use_strict_mode
  для всех сайтов.
  
  Немедленное удаление сессии может привести к нежелательным последствиям. При наличии конкурирующих
  запросов, другие соединения могут столкнуться с внезапной потерей данных сессии, например, это
  могут быть запросы от JavaScript и/или запросы из ссылок URL.
  
  Даже если текущий модуль сессии не поддерживает пустые cookie идентификатора сессии, немедленное
  удаление сессии может привести к пустым cookie идентификатора сессии из-за состояния гонки на
  стороне клиента (браузера). Это приведёт к тому, что клиент создаст множество идентификаторов
  сессии без необходимости.
  
  Чтобы этого избежать, необходимо установить в $_SESSION временную метку удаления и убрать доступ
  позже. Или удостовериться, что ваше приложение не имеет конкурирующих запросов. Это также
  относится к <strong>session_regenerate_id()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * session.use_strict_mode
   * <strong>session_reset()</strong>
   * <strong>session_regenerate_id()</strong>
   * <strong>unset()</strong>
   * <strong>setcookie()</strong>


id: session_encode
type: function
doc:
<comment>Description:</comment>
  Кодирует данные текущей сессии в формате строки сессии
  
  <strong>session_encode()</strong> возвращает сериализованную строку, содержащую данные текущей сессии, хранящиеся в
  суперглобальном массиве $ _SESSION.
  
  По умолчанию используется внутренний метод сериализации PHP и результат будет отличаться от
  формата, возвращаемого функцией <strong>serialize()</strong>. Метод сериализации может быть установлен с помощью
  session.serialize_handler.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает сериализованные данные текущей сессии или <info>false</info> в случае возникновения
                ошибки.

<comment>See Also:</comment>
   * <strong>session_decode()</strong>
   * session.serialize_handler


id: session_gc
type: function
doc:
<comment>Description:</comment>
  Выполняет сборку мусора данных сессии
  
  <strong>session_gc()</strong> используется для выполнения сборки мусора (garbage collection) для данных сессии. По
  умолчанию PHP выполняет основанную на вероятности сборку мусора сессии.
  
  Сборка мусора, основанная на вероятности в целом работает, но имеет несколько проблем. 1) На
  низкозагруженных сайтах данные сессии могут быть не удалены в течение желаемого времени. 2) На
  высокозагруженных сайтах сборка мусора может выполняться слишком часто. 3) Сборка мусора
  выполняется во время обработки запроса пользователя, что приводит к дополнительной задержке для
  пользователя.
  
  Поэтому рекомендуется выполнять сборку мусора на рабочих системах периодически, например,
  использовать задачи cron в UNIX-подобных системах. При этом убедитесь, что отключили сборку мусора
  на основе вероятности, установив session.gc_probability в 0.

<comment>Return:</comment>
  <info>int|false</info>  <strong>session_gc()</strong> возвращает число удалённых данных сессии при успешном выполнении и <info>false</info> в
             случае неудачи.
             
             Старые обработчики сессии не возвращают число удалённых данных сессии, а только флаг
             успеха/неудачи. В этом случае, число удалённых данных сессии всегда будет равно 1,
             независимо от фактического количества удалённых данных.

<comment>See Also:</comment>
   * <strong>session_start()</strong>
   * <strong>session_destroy()</strong>
   * session.gc_probability


id: session_get_cookie_params
type: function
doc:
<comment>Description:</comment>
  Возвращает параметры cookie сессии
  
  Возвращает параметры cookie сессии.

<comment>Return:</comment>
  <info>array</info>  Возвращает массив с информацией о cookie текущей сессии, который содержит следующие
         элементы: "lifetime" - время жизни cookie в секундах. "path" - путь, где размещена хранимая
         информация. "domain" - домен cookie. "secure" - cookie должны передаваться только через
         безопасные соединения. "httponly" - cookie могут быть доступны только по протоколу HTTP.
         "samesite" - управляет междоменной отправкой cookie.
         
         "lifetime" - время жизни cookie в секундах.
         
         "path" - путь, где размещена хранимая информация.
         
         "domain" - домен cookie.
         
         "secure" - cookie должны передаваться только через безопасные соединения.
         
         "httponly" - cookie могут быть доступны только по протоколу HTTP.
         
         "samesite" - управляет междоменной отправкой cookie.

<comment>See Also:</comment>
   * session.cookie_lifetime
   * session.cookie_path
   * session.cookie_domain
   * session.cookie_secure
   * session.cookie_httponly
   * session.cookie_samesite
   * <strong>session_set_cookie_params()</strong>


id: session_id
type: function
doc:
<comment>Description:</comment>
  Получает и/или устанавливает идентификатор текущей сессии
  
  <strong>session_id()</strong> используется для получения или установки идентификатора текущей сессии.
  
  Константа <info>SID</info> также может быть использована для получения текущего имени и идентификатора сессии в
  виде строки, подходящей для добавления в URL-адреса. Смотрите также Работа с сессиями.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$id</strong>  Если указан параметр <strong>$id</strong> и он не равен <info>null</info>, то он заменит идентификатор текущий
                    сессии. Для этого <strong>session_id()</strong> следует вызывать до <strong>session_start()</strong>. В
                    зависимости от обработчика сессии, не все символы возможно использовать в
                    идентификаторе сессии. Например, файловый обработчик сессии поддерживает только
                    символы из диапазона <return>a-z A-Z 0-9 , (запятая)</return> и <return>- (минус)</return>!
                    
                    При использовании сессионных cookie, указание <strong>$id</strong> для <strong>session_id()</strong> приводит к
                    тому, что при вызове <strong>session_start()</strong> всегда будут отправлены новые cookie,
                    независимо от того, совпадает ли идентификатор текущей сессии с вновь
                    установленным.

<comment>Return:</comment>
  <info>string|false</info>  <strong>session_id()</strong> возвращает идентификатор текущей сессии или пустую строку (<return>""</return>), если
                нет текущей сессии (идентификатор текущей сессии не существует). В случае неудачи
                возвращает <info>false</info>.

<comment>See Also:</comment>
   * <strong>session_regenerate_id()</strong>
   * <strong>session_start()</strong>
   * <strong>session_set_save_handler()</strong>
   * session.save_handler


id: session_module_name
type: function
doc:
<comment>Description:</comment>
  Возвращает и/или устанавливает модуль текущей сессии
  
  <strong>session_module_name()</strong> возвращает название текущего модуля сессии, которое также известен как
  session.save_handler.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$module</strong>  Если указан параметр <strong>$module</strong> и не равен <info>null</info>, данный модуль будет
                        использован вместо текущего. Передача значения <return>"user"</return> в этот параметр
                        запрещена. Вместо этого должна вызываться функция <strong>session_set_save_handler()</strong>
                        для установки пользовательского обработчика.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает название текущего модуля сессии или <info>false</info> в случае возникновения ошибки.


id: session_name
type: function
doc:
<comment>Description:</comment>
  Получить или установить имя текущей сессии
  
  <strong>session_name()</strong> возвращает имя текущей сессии. Если задан параметр <strong>$name</strong>, <strong>session_name()</strong> обновит
  имя сессии и вернёт старое имя сессии.
  
  Если новое имя сессии (<strong>$name</strong>) предоставлено, <strong>session_name()</strong> изменяет cookie HTTP (и выводит
  содержимое при включённой опции <return>session.transid</return>). Когда cookie HTTP отправлены, <strong>session_name()</strong>
  вызывает ошибку. <strong>session_name()</strong> необходимо вызывать до <strong>session_start()</strong> для правильной работы
  сессии.
  
  Имя сессии сбрасываются на значение по умолчанию, хранящегося в <return>session.name</return> во время запуска
  запроса. Таким образом, вам нужно вызывать <strong>session_name()</strong> для каждого запроса (и до
  <strong>session_start()</strong>).

<comment>Param:</comment>
  <info>string|null</info>  <strong>$name</strong>  Имя сессии ссылается на имя сессии, которое используется в cookie и URL
                      (например, <return> PHPSESSID </return>). Оно должно содержать только буквенно-цифровые
                      символы, и должен быть коротким и понятными (например, для пользователей с
                      включённым предупреждением cookie). Если задан параметр <strong>$name</strong> и он не равен
                      <info>null</info>, имя текущей сессии поменяется на него.
                      
                       Имя сессии не может состоять только из цифр, по крайней мере, одна буква
                      должна присутствовать. В противном случае каждый раз будет генерироваться
                      новый идентификатор.
                      
                      Имя сессии не может состоять только из цифр, по крайней мере, одна буква
                      должна присутствовать. В противном случае каждый раз будет генерироваться
                      новый идентификатор.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает имя текущей сессии. Если задан параметр <strong>$name</strong>, имя текущей сессии
                поменяется и будет возвращено старое или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * 
     Параметр конфигурации session.name
    


id: session_regenerate_id
type: function
doc:
<comment>Description:</comment>
  Генерирует и обновляет идентификатор текущей сессии
    
  
  <strong>session_regenerate_id()</strong> заменяет идентификатор текущей сессии вновь сгенерированным, при этом
  сохраняет информацию о текущей сессии.
  
  При включённой опции session.use_trans_sid, вывод должен осуществляться после вызова
  <strong>session_regenerate_id()</strong>. В противном случае будет использоваться старый идентификатор сессии.
  
  Текущая реализация <strong>session_regenerate_id()</strong> плохо работает с сетями с нестабильным соединением,
  такими как мобильные и WiFi-сети. Таким образом, есть вероятность потерять сессию из-за вызова
  <strong>session_regenerate_id()</strong>.
  
  Вы не должны уничтожать данные старой сессии немедленно, а должны использовать временные метки
  удаления и контролировать доступ к старой сессии. В противном случае конкурирующий доступ к
  странице может привести к несогласованному состоянию, потере сессии или к состоянию гонки на
  стороне клиента (браузера), что, в свою очередь, приведёт к созданию множества идентификаторов
  сессии без необходимости. Немедленное удаление сессии также делает невозможным обнаружение и
  предотвращение атак при перехвате сессии.

<comment>Param:</comment>
  <info>bool</info>  <strong>$delete_old_session</strong>  Определяет, удалять ли старый связанный файл с сессией или нет. Не
                             следует удалять старую сессию, если требуется избегать состояния гонки
                             из-за удаления или обнаруживать/избегать атак при перехвате сессии.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>session_id()</strong>
   * <strong>session_create_id()</strong>
   * <strong>session_start()</strong>
   * <strong>session_destroy()</strong>
   * <strong>session_reset()</strong>
   * <strong>session_name()</strong>


id: session_register_shutdown
type: function
doc:
<comment>Description:</comment>
  Функция завершения сессии
  
  Регистрирует функцию <strong>session_write_close()</strong> в качестве функции завершения сессии.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.


id: session_reset
type: function
doc:
<comment>Description:</comment>
  Реинициализирует сессию оригинальными значениями
  
  Функция <strong>session_reset()</strong> повторно инициализирует сессию, используя оригинальные значения,
  сохранённые в хранилище сессии. Эта функция требует наличия активной сессии и уничтожает все
  изменения в массиве $_SESSION.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * $_SESSION
   * 
     Опция конфигурации session.auto_start
    
   * <strong>session_start()</strong>
   * <strong>session_abort()</strong>
   * <strong>session_commit()</strong>


id: session_save_path
type: function
doc:
<comment>Description:</comment>
  Получает и/или устанавливает путь сохранения сессии
  
  <strong>session_save_path()</strong> возвращает путь текущей директории, которая используется для сохранения данных
  сессии.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$path</strong>  Путь для данных сессии. Если указан и не равен <info>null</info>, то путь, куда сохраняются
                      данные, будет изменён. Для этой цели <strong>session_save_path()</strong> следует вызывать
                      перед <strong>session_start()</strong>.
                      
                       В некоторых операционных системах вы можете указать путь в файловой системе,
                      которая эффективно обрабатывает большое число небольших файлов. Например, в
                      Linux файловая система reiserfs может обеспечить лучшую производительность,
                      чем ext2fs.
                      
                      В некоторых операционных системах вы можете указать путь в файловой системе,
                      которая эффективно обрабатывает большое число небольших файлов. Например, в
                      Linux файловая система reiserfs может обеспечить лучшую производительность,
                      чем ext2fs.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает путь текущей директории, используемой для хранения данных сессии или
                <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * session.save_path


id: session_set_cookie_params
type: function
doc:
<comment>Description:</comment>
  Устанавливает параметры сессионной cookie
  
  Альтернативная сигнатура доступна с PHP 7.3.0:
  
  Устанавливает параметры cookie, определённые в файле php.ini. Эффект этой функции сохраняется
  только на время выполнения скрипта. Таким образом, нужно вызывать <strong>session_set_cookie_params()</strong> для
  каждого запроса и перед каждым вызовом <strong>session_start()</strong>.
  
  Данная функция обновляет текущие ini-значения соответствующих ключей конфигурации PHP ini, которые
  можно получить с помощью <strong>ini_get()</strong>.

<comment>Param:</comment>
  <info>int</info>          <strong>$lifetime_or_options</strong>  Если использовать первую сигнатуры, время жизни сессионной
                                     куки, заданное в секундах.
                                     
                                     Если использовать вторую сигнатуру, то ассоциативный массив
                                     (<info>array</info>), который может иметь любое из ключей <return>lifetime</return>, <return>path</return>,
                                     <return>domain</return>, <return>secure</return>, <return>httponly</return> и <return>samesite</return>. Значения имеют тот же
                                     смысл, как описано в параметрах с соответствующим именем.
                                     Значение элемента <return>samesite</return> должно быть либо <return>Lax</return>, либо <return>Strict</return>.
                                     Если какая-либо из допустимых опций не указана, её значения по
                                     умолчанию совпадают с значениями по умолчанию для явных
                                     параметров. Если элемент <return>samesite</return> не указан, cookie-атрибут
                                     SameSite не установлен.
  <info>string|null</info>  <strong>$path</strong>                 Путь в домене, где cookie будет работать. Используйте одну
                                     косую черту ('/') для всех путей в домене.
  <info>string|null</info>  <strong>$domain</strong>               Домен cookie, например 'www.php.net'. Чтобы сделать cookies
                                     видимыми для всех поддоменов, перед именем домена нужно
                                     поставить точку, например '.php.net'.
  <info>bool|null</info>    <strong>$secure</strong>               Если <info>true</info>, то cookies будут передаваться только через
                                     защищённые соединения.
  <info>bool|null</info>    <strong>$httponly</strong>             Если установлено <info>true</info>, то PHP попытается отправить флаг
                                     httponly при настройке сессионной cookie.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * session.cookie_lifetime
   * session.cookie_path
   * session.cookie_domain
   * session.cookie_secure
   * session.cookie_httponly
   * session.cookie_samesite
   * <strong>session_get_cookie_params()</strong>


id: session_set_save_handler
type: function
doc:
<comment>Description:</comment>
  Устанавливает пользовательские обработчики хранения сессии
  
  Также возможно зарегистрировать следующий прототип:
  
  <strong>session_set_save_handler()</strong> устанавливает пользовательские обработчики хранения сессии, которые
  используются для сохранения и получения данных, связанных с сессией. Это особенно полезно, когда
  предпочтительным является метод хранения, отличный от тех, которые предоставляются сессиями PHP,
  например, хранение данных сессии в локальной базе данных.

<comment>Param:</comment>
  <info>object</info>    <strong>$sessionhandler</strong>     Экземпляр класса, реализующий интерфейс SessionHandlerInterface и
                                необязательные SessionIdInterface и/или
                                SessionUpdateTimestampHandlerInterface, такой как <class>SessionHandler</class>,
                                для регистрации в качестве обработчика сессии.
  <info>bool</info>      <strong>$register_shutdown</strong>  Зарегистрировать <strong>session_write_close()</strong> как функцию
                                <strong>register_shutdown_function()</strong>.
  <info>callable</info>  <strong>$open</strong>               Callback-функция со следующей сигнатурой:
                                <info>bool</info>open<info>string</info><strong>$savePath</strong><info>string</info><strong>$sessionName</strong>
                                
                                Callback-функция <strong>$open</strong> работает как конструктор в классах и
                                выполняется при открытии сессии. Это первая callback-функция,
                                которая выполняется, когда сессия стартует автоматически либо
                                вручную через <strong>session_start()</strong>. Возвращаемое значение <info>true</info> в случае
                                успешного выполнения, <info>false</info> в случае неудачи.
  <info>callable</info>  <strong>$close</strong>              Callback-функция со следующей сигнатурой: <info>bool</info>close
                                
                                Callback-функция <strong>$close</strong> работает как деструктор в классах и
                                выполняется после того, как была вызвана callback-функция <strong>$write</strong>.
                                Она также вызывается при вызове <strong>session_write_close()</strong>. Возвращаемое
                                значение должно быть <info>true</info> в случае успешного выполнения, <info>false</info> в
                                случае неудачи.
  <info>callable</info>  <strong>$read</strong>               Callback-функция со следующей сигнатурой: <info>string</info>read<info>string</info><strong>$sessionId</strong>
                                
                                Callback-функция <strong>$read</strong> должна всегда возвращать кодированную
                                (сериализованную) строку сессии или пустую строку, если нет данных
                                для чтения.
                                
                                Эта callback-функция вызывается внутренним механизмом PHP при старте
                                сессии или при вызове <strong>session_start()</strong>. Перед тем, как будет вызвана
                                эта callback-функция, PHP вызовет callback-функцию <strong>$open</strong>.
                                
                                Возвращаемое значение данной callback-функции должно быть в точно
                                таком же сериализованном формате, который изначально передавался для
                                хранения в callback-функцию <strong>$write</strong>. Возвращаемое значение будет
                                автоматически десериализовано PHP и использовано для заполнения
                                суперглобальной переменной $_SESSION. Даже если данные похожи на
                                результат <strong>serialize()</strong>, стоит помнить, что это другой формат
                                сериализации, который определён ini-директивой
                                session.serialize_handler.
  <info>callable</info>  <strong>$write</strong>              Callback-функция со следующей сигнатурой:
                                <info>bool</info>write<info>string</info><strong>$sessionId</strong><info>string</info><strong>$data</strong>
                                
                                Callback-функция <strong>$write</strong> вызывается, когда сессия должна быть
                                сохранена и закрыта. Данная callback-функция принимает идентификатор
                                текущей сессии и сериализованную версию суперглобальной переменной
                                $_SESSION. Используемый внутри PHP метод сериализации определён
                                ini-директивой session.serialize_handler.
                                
                                Переданные в эту callback-функцию сериализованные данные сессии
                                должны быть сохранены в связи с переданным идентификатором сессии.
                                При получении этих данных, callback-функция <strong>$read</strong> должна вернуть то
                                же самое значение, что было передано в callback-функцию <strong>$write</strong>.
                                
                                Данная callback-функция вызывается, когда PHP завершает работу или
                                явно при вызове <strong>session_write_close()</strong>. Следует помнить, что после
                                выполнения этой callback-функции, PHP выполнит callback-функцию
                                <strong>$close</strong>.  Обработчик "write" не выполнится до тех пор, пока выходной
                                поток не будет закрыт. Таким образом, вывод отладочных операторов в
                                обработчике "write" никогда не отобразится в браузере. Если
                                необходим вывод отладочной информации, рекомендуется записывать
                                отладочные данные в файл.
                                
                                Обработчик "write" не выполнится до тех пор, пока выходной поток не
                                будет закрыт. Таким образом, вывод отладочных операторов в
                                обработчике "write" никогда не отобразится в браузере. Если
                                необходим вывод отладочной информации, рекомендуется записывать
                                отладочные данные в файл.
  <info>callable</info>  <strong>$destroy</strong>            Callback-функция со следующей сигнатурой:
                                <info>bool</info>destroy<info>string</info><strong>$sessionId</strong>
                                
                                Данная callback-функция вызывается, когда сессия уничтожается с
                                помощью <strong>session_destroy()</strong> или при вызове <strong>session_regenerate_id()</strong> с
                                параметром destroy, установленным в <info>true</info>. Возвращаемое значение
                                должно быть <info>true</info> в случае успешного выполнения, <info>false</info> в случае
                                неудачи.
  <info>callable</info>  <strong>$gc</strong>                 Callback-функция со следующей сигнатурой: <info>bool</info>gc<info>int</info><strong>$lifetime</strong>
                                
                                Callback-функция сборщика мусора периодически вызывается PHP для
                                очистки данных старых сессий. Частота контролируется директивами
                                session.gc_probability и session.gc_divisor. Значение lifetime,
                                которое передаётся в данную callback-функцию может быть установлено
                                в session.gc_maxlifetime. Возвращаемое значение должно быть <info>true</info> в
                                случае успешного выполнения, <info>false</info> в случае неудачи.
  <info>callable</info>  <strong>$create_sid</strong>         Callback-функция со следующей сигнатурой: <info>string</info>create_sid
                                
                                Данная callback-функция выполняется, когда требуется новый
                                идентификатор сессии. Не предусматривает параметров, а возвращаемое
                                значение должно быть строкой, которая является допустимым
                                идентификатором сессии для вашего обработчика.
  <info>callable</info>  <strong>$validate_sid</strong>       Callback-функция со следующей сигнатурой: <info>bool</info>validate_sid<info>string</info><strong>$key</strong>
                                
                                Callback-функция выполняется, когда должна быть запущена сессия,
                                предоставляется идентификатор сессии и включается
                                session.use_strict_mode. <strong>$key</strong> - это идентификатор сессии для
                                проверки. Идентификатор сессии действителен, если сессия с таким
                                идентификатором уже существует. Возвращаемое значение должно быть
                                <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения
                                ошибки.
  <info>callable</info>  <strong>$update_timestamp</strong>   Callback-функция со следующей сигнатурой:
                                <info>bool</info>update_timestamp<info>string</info><strong>$key</strong><info>string</info><strong>$val</strong>
                                
                                Callback-функция выполняется при сессии. <strong>$key</strong> - это идентификатор
                                сессии, <strong>$val</strong> - это данные сессии. Возвращаемое значение должно быть
                                <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения
                                ошибки.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * 
     Директива session.save_handler
    
   * 
     Директива session.serialize_handler
    
   * <strong>register_shutdown_function()</strong>
   * <strong>session_register_shutdown()</strong>
   * 
     Обратитесь к save_handler.inc
     для полного набора рекомендаций по реализации
    


id: session_start
type: function
doc:
<comment>Description:</comment>
  Стартует новую сессию, либо возобновляет существующую
  
  Функция <strong>session_start()</strong> создаёт сессию, либо возобновляет существующую, основываясь на
  идентификаторе сессии, переданном через GET- или POST-запрос, либо переданный через cookie.
  
  Когда вызвана функция <strong>session_start()</strong> или когда сессия создаётся автоматически, PHP вызовет
  открытие и чтение обработчиков записи сессии. Это могут быть как встроенные обработчики, так и
  предоставляемые модулями (например, SQLite или Memcached); или вообще определённый пользователем
  обработчик, заданный функцией <strong>session_set_save_handler()</strong>. Callback-функция чтения извлечёт все
  существующие данные сессии (сохранённые в специальном сериализованном виде), десериализует их и
  занесёт в суперглобальный массив $_SESSION, после чего вернёт сохранённые данные обработчику
  сессий PHP.
  
  Для использования именованных сессий, используйте <strong>session_name()</strong> перед <strong>session_start()</strong>.
  
  Если разрешена опция session.use_trans_sid, функция <strong>session_start()</strong> регистрирует внутренний
  обработчик вывода для перезаписи URL.
  
  Если пользователь использует <return>ob_gzhandler</return> или что-то подобное совместно с функцией <strong>ob_start()</strong>,
  порядок функций важен для правильного вывода. К примеру, <return>ob_gzhandler</return> должен быть зарегистрирован
  до старта сессии.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  Если задано, то должно быть ассоциативным массивом, переопределяющим текущие
                   директивы конфигурации сессий. Ключи не должны иметь префикса <return>session.</return>.
                   
                   В дополнение к обычному набору конфигурационных директив, может быть добавлена
                   опция <return>read_and_close</return>. Если установлена в <info>true</info>, то сессия будет закрыта сразу же
                   после прочтения, теоретически позволяя избежать блокировки, если данные сессии не
                   будут изменяться.

<comment>Return:</comment>
  <info>bool</info>  Функция возвращает <info>true</info>, если сессия успешно стартована, в противном случае <info>false</info>.

<comment>See Also:</comment>
   * $_SESSION
   * 
     Директива конфигурации session.auto_start
    
   * <strong>session_id()</strong>


id: session_status
type: function
doc:
<comment>Description:</comment>
  Возвращает состояние текущей сессии
  
  Функция <strong>session_status()</strong> возвращает состояние текущей сессии.

<comment>Return:</comment>
  <info>int</info>  <info>PHP_SESSION_DISABLED</info>, если механизм сессий отключён.<info>PHP_SESSION_NONE</info>, если механизм сессий
       включён, но сессия не создана.<info>PHP_SESSION_ACTIVE</info>, если механизм сессий включён и сессия
       создана.
       
       <info>PHP_SESSION_DISABLED</info>, если механизм сессий отключён.
       
       <info>PHP_SESSION_NONE</info>, если механизм сессий включён, но сессия не создана.
       
       <info>PHP_SESSION_ACTIVE</info>, если механизм сессий включён и сессия создана.

<comment>See Also:</comment>
   * <strong>session_start()</strong>


id: session_unset
type: function
doc:
<comment>Description:</comment>
  Удалить все переменные сессии
  
  Функция <strong>session_unset()</strong> удаляет все зарегистрированные переменные текущей сессии.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: session_write_close
type: function
doc:
<comment>Description:</comment>
  Записывает данные сессии и завершает её
  
  Завершает текущую сессию и сохраняет её данные.
  
  Данные сессии обычно сохраняются после завершения выполнения скрипта без необходимости вызова
  <strong>session_write_close()</strong>. Поскольку данные сессии заблокированы для предотвращения одновременной
  конкурирующей записи, только один скрипт может работать с сессией в любой момент времени. Из-за
  этой блокировки, при использовании фреймов вместе с сессиями, фреймы будут загружаться по очереди
  один за одним. Можно уменьшить время загрузки всех фреймов путём завершения сессии сразу, как
  только будут выполнены все необходимые изменения переменных сессии.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>session_register_shutdown()</strong>


id: set_error_handler
type: function
doc:
<comment>Description:</comment>
  Задаёт пользовательский обработчик ошибок
    
  
  Задаёт пользовательскую функцию (<strong>$callback</strong>), как обработчик ошибок в скрипте.
  
  Функция может быть использована для определения пользовательских обработчиков ошибок во время
  выполнения, например, в приложениях, которые должны выполнять очистку файлов/данных в случае
  возникновения критической ошибки или при инициировании ошибки в ответ на определённые условия
  (используя функцию <strong>trigger_error()</strong>).
  
  Важно помнить, что стандартный обработчик ошибок PHP не будет обрабатывать никакие типы ошибок,
  определённые в <strong>$error_levels</strong>, пока callback-функция не вернёт <info>false</info>. Пользовательский обработчик
  будет вызываться в случае возникновения любой ошибки, независимо от настроек, заданных функцией
  error_reporting.
  
  Также обратите внимание, что обработчик обязан при необходимости остановить выполнение скрипта,
  вызвав функцию <strong>exit()</strong>. Если происходит возврат из обработчика ошибок, управление передаётся
  следующему выражению, стоящему за тем, что вызвало ошибку.
  
  Ошибки следующих типов не могут быть обработаны пользователем: <info>E_ERROR</info>, <info>E_PARSE</info>, <info>E_CORE_ERROR</info>,
  <info>E_CORE_WARNING</info>, <info>E_COMPILE_ERROR</info>, <info>E_COMPILE_WARNING</info> независимо от того, где они были сгенерированы
  и большинство ошибок <info>E_STRICT</info>, произошедших в файле, где вызвана функция <strong>set_error_handler()</strong>.
  
  Если ошибки возникают до запуска скрипта (например, пока файл загружается), пользовательский
  обработчик не будет вызываться, если на этот момент он ещё не зарегистрирован.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$callback</strong>      Если передано значение <info>null</info>, обработчик сбрасывается в состояние по
                                умолчанию. В противном случае обработчик представляет собой
                                callback-функцию со следующей сигнатурой:
                                
                                
                                <info>bool</info>handler<info>int</info><strong>$errno</strong><info>string</info><strong>$errstr</strong><info>string</info><strong>$errfile</strong><info>int</info><strong>$errline</strong><info>array</info><strong>$errcontext</strong><strong>$errno</strong>
                                В первый аргумент <strong>$errno</strong> будет передан уровень ошибки в виде целого
                                числа. <strong>$errstr</strong> Во второй аргумент <strong>$errstr</strong> будет передано сообщение
                                об ошибке в виде строки. <strong>$errfile</strong> Если функция обратного вызова
                                принимает третий параметр <strong>$errfile</strong>, то в него будет передано имя
                                файла, в котором произошла ошибка, в виде строки. <strong>$errline</strong> Если
                                функция обратного вызова принимает четвёртый параметр <strong>$errline</strong>, то в
                                него будет передан номер строки, в которой произошла ошибка, в виде
                                целого числа. <strong>$errcontext</strong> Если функция обратного вызова принимает
                                пятый параметр <strong>$errcontext</strong>, то в него будет передан массив
                                указателей на активную таблицу символов в точке, где произошла
                                ошибка. Другими словами, <strong>$errcontext</strong> будет содержать массив всех
                                переменных, существующих в области видимости, где произошла ошибка.
                                Пользовательские обработчики ошибок не должны изменять этот
                                контекст.  Этот параметр объявлен УСТАРЕВШИМ начиная с PHP 7.2.0 и
                                был УДАЛЁН в PHP 8.0.0. Если в вашей функции этот параметр
                                используется и для него не задано значение по умолчанию, то при
                                вызове функции обработчика будет выдана ошибка "too few arguments".
                                
                                В первый аргумент <strong>$errno</strong> будет передан уровень ошибки в виде целого
                                числа.
                                
                                Во второй аргумент <strong>$errstr</strong> будет передано сообщение об ошибке в виде
                                строки.
                                
                                Если функция обратного вызова принимает третий параметр <strong>$errfile</strong>, то
                                в него будет передано имя файла, в котором произошла ошибка, в виде
                                строки.
                                
                                Если функция обратного вызова принимает четвёртый параметр <strong>$errline</strong>,
                                то в него будет передан номер строки, в которой произошла ошибка, в
                                виде целого числа.
                                
                                Если функция обратного вызова принимает пятый параметр <strong>$errcontext</strong>,
                                то в него будет передан массив указателей на активную таблицу
                                символов в точке, где произошла ошибка. Другими словами, <strong>$errcontext</strong>
                                будет содержать массив всех переменных, существующих в области
                                видимости, где произошла ошибка. Пользовательские обработчики ошибок
                                не должны изменять этот контекст.
                                
                                Этот параметр объявлен УСТАРЕВШИМ начиная с PHP 7.2.0 и был УДАЛЁН в
                                PHP 8.0.0. Если в вашей функции этот параметр используется и для
                                него не задано значение по умолчанию, то при вызове функции
                                обработчика будет выдана ошибка "too few arguments".
                                
                                Если функция возвращает <info>false</info>, управление передаётся встроенному
                                обработчику ошибок.
  <info>int</info>            <strong>$errno</strong>         В первый аргумент <strong>$errno</strong> будет передан уровень ошибки в виде целого
                                числа.
  <info>string</info>         <strong>$errstr</strong>        Во второй аргумент <strong>$errstr</strong> будет передано сообщение об ошибке в виде
                                строки.
  <info>string</info>         <strong>$errfile</strong>       Если функция обратного вызова принимает третий параметр <strong>$errfile</strong>, то
                                в него будет передано имя файла, в котором произошла ошибка, в виде
                                строки.
  <info>int</info>            <strong>$errline</strong>       Если функция обратного вызова принимает четвёртый параметр <strong>$errline</strong>,
                                то в него будет передан номер строки, в которой произошла ошибка, в
                                виде целого числа.
  <info>array</info>          <strong>$errcontext</strong>    Если функция обратного вызова принимает пятый параметр <strong>$errcontext</strong>,
                                то в него будет передан массив указателей на активную таблицу
                                символов в точке, где произошла ошибка. Другими словами, <strong>$errcontext</strong>
                                будет содержать массив всех переменных, существующих в области
                                видимости, где произошла ошибка. Пользовательские обработчики ошибок
                                не должны изменять этот контекст.
                                
                                Этот параметр объявлен УСТАРЕВШИМ начиная с PHP 7.2.0 и был УДАЛЁН в
                                PHP 8.0.0. Если в вашей функции этот параметр используется и для
                                него не задано значение по умолчанию, то при вызове функции
                                обработчика будет выдана ошибка "too few arguments".
  <info>int</info>            <strong>$error_levels</strong>  Может использоваться для задания маски, в соответствии с которой
                                будет вызываться <strong>$callback</strong>, по аналогии с ini-настройкой
                                error_reporting, которая отвечает за то, какие ошибки будут показаны
                                в отчёте. Без этой маски <strong>$callback</strong> будет вызываться для обработки
                                всех происходящих ошибок, вне зависимости от настроек в
                                error_reporting.

<comment>Return:</comment>
  <info>callable|null</info>  Возвращает ранее определённый обработчик ошибок (если есть) Если на данный момент
                 используется встроенный обработчик, функция вернёт <info>null</info>. Если предыдущий
                 определённый обработчик является методом класса, функция вернёт массив, содержащий
                 имя класса и имя метода.

<comment>See Also:</comment>
   * <class>ErrorException</class>
   * <strong>error_reporting()</strong>
   * <strong>restore_error_handler()</strong>
   * <strong>trigger_error()</strong>
   * Константы уровней ошибок


id: set_exception_handler
type: function
doc:
<comment>Description:</comment>
  Задаёт пользовательский обработчик исключений
    
  
  Задаёт обработчик по умолчанию для случаев, когда исключение выброшено вне блока try/catch. После
  вызова <strong>$callback</strong> выполнение будет остановлено.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$callback</strong>  Функция, вызываемая при возникновении неперехваченного исключения. Эта
                            функция-обработчик должна принимать один параметр, которым будет объект
                            выброшенного исключения <class>Throwable</class>. И <class>Error</class> и <class>Exception</class> реализуют
                            интерфейс <class>Throwable</class>. Сигнатура обработчика:
                            
                            <info>void</info>handler<info>Throwable</info><strong>$ex</strong>
                            
                            В качестве этого аргумента можно передать <info>null</info>. В этом случае обработчик
                            вернётся к своему изначальному состоянию.

<comment>Return:</comment>
  <info>callable|null</info>  Возвращает ранее определённый обработчик исключений или <info>null</info> в случае ошибки. Если
                 предыдущих обработчиков определено не было, то также возвращается <info>null</info>.

<comment>See Also:</comment>
   * <strong>restore_exception_handler()</strong>
   * <strong>restore_error_handler()</strong>
   * <strong>error_reporting()</strong>
   * Исключения


id: set_file_buffer
type: function
doc:
<comment>Description:</comment>
  Псевдоним stream_set_write_buffer
  
  Функция является псевдонимом:  <strong>stream_set_write_buffer()</strong>.


id: set_include_path
type: function
doc:
<comment>Description:</comment>
  Устанавливает значение настройки конфигурации include_path
    
  
  Задаёт значение настройки конфигурации include_path на время выполнения скрипта.

<comment>Param:</comment>
  <info>string</info>  <strong>$include_path</strong>  Новое значение настройки include_path

<comment>Return:</comment>
  <info>string|false</info>  Возвращает старое значение include_path в случае успешного выполнения или <info>false</info> в
                случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>ini_set()</strong>
   * <strong>get_include_path()</strong>
   * <strong>restore_include_path()</strong>
   * <strong>include()</strong>


id: set_time_limit
type: function
doc:
<comment>Description:</comment>
  Ограничение времени выполнения скрипта
  
  Задаёт время в секундах, в течение которого скрипт должен завершить работу. Если скрипт не
  успевает, вызывается фатальная ошибка. По умолчанию даётся 30 секунд, либо время, записанное в
  настройке <return>max_execution_time</return> в php.ini (если такая настройка установлена).
  
  При вызове <strong>set_time_limit()</strong> перезапускает счётчик с нуля. Другими словами, если время ожидания
  изначально было 30 секунд, и через 25 секунд после запуска скрипта будет вызвана функция
  <return>set_time_limit(20)</return>, то скрипт будет работать максимум 45 секунд.

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>  Максимальное время выполнения в секундах. Если задан ноль, время выполнения
                 неограниченно.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения, иначе <info>false</info>.

<comment>See Also:</comment>
   * max_execution_time
   * max_input_time


id: setcookie
type: function
doc:
<comment>Description:</comment>
  Отправляет cookie
  
  Альтернативная сигнатура доступна с PHP 7.3.0 (именованные параметры не поддерживаются):
  
  <strong>setcookie()</strong> задаёт cookie, которое будет передано клиенту вместе с другими HTTP-заголовками. Как и
  любой другой заголовок, cookie должны передаваться до того как будут выведены какие-либо другие
  данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны
  располагаться до остального вывода, включая вывод тегов <return>\<html&gt; </return> и <return>\<head&gt;</return>, а также пустые строки и пробельные символы.
  
  После передачи клиенту cookie станут доступны через массив $_COOKIE при следующей загрузке
  страницы. Значения cookie также есть в $_REQUEST.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>                Название cookie.
  <info>string</info>  <strong>$value</strong>               Значение cookie. Это значение будет сохранено на клиентском
                               компьютере; не записывайте в cookie секретные данные. Значение,
                               присвоенное cookie c именем <strong>$name</strong>, допустим, <return>'cookiename'</return>, будет
                               доступно через $_COOKIE['cookiename'].
  <info>int</info>     <strong>$expires_or_options</strong>  Время, когда срок действия cookie истекает. Это метка времени Unix,
                               то есть количество секунд с начала эпохи. Один из способов установить
                               значение - добавить количество секунд до истечения срока действия
                               cookie к результату вызова функции <strong>time()</strong>. Например,
                               <return>time()+60*60*24*30</return> установит, что срок действия cookie истекает через
                               30 дней. Другой вариант - использовать функцию <strong>mktime()</strong>. Если задать
                               <return>0</return> или пропустить аргумент, срок действия cookie истечёт с окончанием
                               сессии (при закрытии браузера).
                               
                                Можно заметить, что <strong>$expires_or_options</strong> принимает в качестве
                               значения метку времени Unix, а хранит его в формате <return>Wdy, DD-Mon-YYYY
                               HH:MM:SS GMT</return>. PHP делает это преобразование автоматически.
                               
                               Можно заметить, что <strong>$expires_or_options</strong> принимает в качестве значения
                               метку времени Unix, а хранит его в формате <return>Wdy, DD-Mon-YYYY HH:MM:SS
                               GMT</return>. PHP делает это преобразование автоматически.
  <info>string</info>  <strong>$path</strong>                Путь к директории на сервере, из которой будут доступны cookie. Если
                               задать <return>'/'</return>, cookie будут доступны во всем домене <strong>$domain</strong>. Если задать
                               <return>'/foo/'</return>, cookie будут доступны только из директории <return>/foo/</return> и всех её
                               поддиректорий (например, <return>/foo/bar/</return>) домена <strong>$domain</strong>. По умолчанию
                               значением является текущая директория, в которой cookie
                               устанавливается.
  <info>string</info>  <strong>$domain</strong>              (Под)домен, которому доступны cookie. Задание поддомена (например,
                               <return>'www.example.com'</return>) сделает cookie доступными в нем и во всех его
                               поддоменах (например, w2.www.example.com). Для того, чтобы сделать
                               cookie доступными для всего домена (включая поддомены), нужно просто
                               указать имя домена (то есть <return>'example.com'</return>).
                               
                               Старые браузеры, следующие устаревшему документу RFC 2109, могут
                               требовать <return>.</return> перед доменом, чтобы включались все поддомены.
  <info>bool</info>    <strong>$secure</strong>              Указывает на то, что значение cookie должно передаваться от клиента
                               по защищённому соединению HTTPS. Если задано <info>true</info>, cookie от клиента
                               будет передано на сервер, только если установлено защищённое
                               соединение. При передаче cookie от сервера клиенту программист
                               веб-сервера должен следить за тем, чтобы cookie этого типа
                               передавались по защищённому каналу (стоит обратить внимание на
                               $_SERVER["HTTPS"]).
  <info>bool</info>    <strong>$httponly</strong>            Если задано <info>true</info>, cookie будут доступны только через HTTP-протокол.
                               То есть cookie в этом случае не будут доступны скриптовым языкам,
                               вроде JavaScript. Эта возможность была предложена в качестве меры,
                               эффективно снижающей количество краж личных данных посредством
                               XSS-атак (несмотря на то, что поддерживается не всеми браузерами).
                               Стоит однако отметить, что вокруг этой возможности часто возникают
                               споры о её эффективности и целесообразности. Может принимать значения
                               <info>true</info> или <info>false</info>.
  <info>array</info>   <strong>$options</strong>             Ассоциативный массив (<info>array</info>), который может иметь любой из ключей:
                               <return>expires</return>, <return>path</return>, <return>domain</return>, <return>secure</return>, <return>httponly</return> и <return>samesite</return>. При наличии
                               любого другого ключа возникнет ошибка уровня <info>E_WARNING</info>. Значения
                               имеют тот же смысл, как описано в параметрах с соответствующим
                               именем. Значение элемента <return>samesite</return> должно быть либо <return>None</return>, либо <return>Lax</return>,
                               либо <return>Strict</return>. Если какая-либо из допустимых опций не указана, её
                               значения по умолчанию совпадают с значениями по умолчанию для явных
                               параметров. Если элемент <return>samesite</return> не указан, cookie-атрибут SameSite
                               не установлен.

<comment>Return:</comment>
  <info>bool</info>  Если перед вызовом функции клиенту уже передавался какой-либо вывод (теги, пустые строки,
        пробелы, текст и т.п.), <strong>setcookie()</strong> потерпит неудачу и вернёт <info>false</info>. Если <strong>setcookie()</strong>
        успешно отработает, то вернёт <info>true</info>. Это, однако, не означает, что клиентское приложение
        (браузер) правильно приняло и обработало cookie.

<comment>See Also:</comment>
   * <strong>header()</strong>
   * <strong>setrawcookie()</strong>
   * раздел cookies
   * RFC 6265
   * RFC 2109


id: setlocale
type: function
doc:
<comment>Description:</comment>
  Устанавливает настройки локали
  
  Альтернативная сигнатура (не поддерживается с именованными аргументами):
  
  Устанавливает настройки локали.
  
  Информация о локали модифицируется во всем процессе, а не по каждому потоку отдельно. Если вы
  используете PHP на многопоточном сервере, вы можете обнаружить неожиданные изменения в настройках
  локали во время выполнения скриптов, никогда и не вызывавших <strong>setlocale()</strong>. Это происходит из-за
  того, что другие скрипты, запущенные в параллельных потоках данного процесса, в то же самое время
  поменяли настройки локали для всего процесса с помощью <strong>setlocale()</strong>. В Windows информация о локали
  поддерживается для каждого потока, начиная с PHP 7.0.5.

<comment>Param:</comment>
  <info>int</info>     <strong>$category</strong>      Параметр <strong>$category</strong> - это именованная константа, определяющая категорию
                         функций, на которые будет влиять установка локали: <info>LC_ALL</info> - все
                         нижеперечисленное <info>LC_COLLATE</info> - функции сравнения строк, смотрите <strong>strcoll()</strong>
                         <info>LC_CTYPE</info> - функции преобразования и классификации строк, например
                         <strong>ctype_alpha()</strong> <info>LC_MONETARY</info> - для функции <strong>localeconv()</strong> <info>LC_NUMERIC</info> - задаёт
                         символ десятичного разделения (смотрите также <strong>localeconv()</strong>) <info>LC_TIME</info> -
                         форматирование даты/времени функцией <strong>strftime()</strong> <info>LC_MESSAGES</info> - для системных
                         сообщений (доступна, если PHP был скомпилирован с поддержкой <return>libintl</return>)
                         
                         <info>LC_ALL</info> - все нижеперечисленное
                         
                         <info>LC_COLLATE</info> - функции сравнения строк, смотрите <strong>strcoll()</strong>
                         
                         <info>LC_CTYPE</info> - функции преобразования и классификации строк, например
                         <strong>ctype_alpha()</strong>
                         
                         <info>LC_MONETARY</info> - для функции <strong>localeconv()</strong>
                         
                         <info>LC_NUMERIC</info> - задаёт символ десятичного разделения (смотрите также
                         <strong>localeconv()</strong>)
                         
                         <info>LC_TIME</info> - форматирование даты/времени функцией <strong>strftime()</strong>
                         
                         <info>LC_MESSAGES</info> - для системных сообщений (доступна, если PHP был скомпилирован
                         с поддержкой <return>libintl</return>)
  <info>string</info>  <strong>$locales</strong>       Если в качестве <strong>$locales</strong> передана пустая строка <return>""</return> или <info>null</info>, имена локалей
                         будут взяты из одноимённых переменных окружения или переменной с именем
                         "LANG".
                         
                         Если в качестве <strong>$locales</strong> передан <return>"0"</return>, локаль изменена не будет, а будет
                         возвращено текущее значение.
                         
                         Если в качестве <strong>$locales</strong> передан массив, или после этого аргумента следуют
                         дополнительные аргументы, функция будет использовать элементы массива или
                         аргументы по порядку в качестве имён локали до тех пор, пока установка
                         локали не будет успешной. Это удобно, если одна и та же локаль имеет разное
                         имя в различных системах, или для создания запасного варианта при
                         отсутствии какой-либо локали в системе.
  <info>string</info>  <strong>$rest</strong>          Необязательные аргументы в виде строк или массивов для установки настроек
                         локали до первой успешной попытки.
  <info>array</info>   <strong>$locale_array</strong>  Каждый элемент массива пытается установить новую локаль до первой успешной
                         попытки. Это полезно, если локаль известна под разными именами в разных
                         системах или для обеспечения запасного варианта для возможно недоступного
                         языкового стандарта.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает имя вновь установленной локали или <info>false</info>, если система не поддерживает
                установку локали, указанная локаль не существует или передано недопустимое имя
                категории.
                
                Недопустимое имя категории также вызывает предупреждение. Имена локалей и категорий
                описаны в RFC 1766 и ISO 639. Разные системы имеют различные схемы именования
                локалей.
                
                Возвращаемое функцией <strong>setlocale()</strong> значение зависит от системы, на которой запущен
                PHP. Она возвращает точно то же значение, что и системная функция <return>setlocale</return>.


id: setrawcookie
type: function
doc:
<comment>Description:</comment>
  Отправляет cookie без URL-кодирования значения
  
  Альтернативная сигнатура доступна с PHP 7.3.0 (именованные параметры не поддерживаются):
  
  Функция <strong>setrawcookie()</strong> является полным аналогом функции <strong>setcookie()</strong>, за исключением того, что
  значение cookie не будет автоматически закодировано при отправке браузеру.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>setcookie()</strong>


id: settype
type: function
doc:
<comment>Description:</comment>
  Задаёт тип переменной
  
  Задаёт тип <strong>$type</strong> переменной <strong>$var</strong>.

<comment>Param:</comment>
  <info>mixed</info>   <strong>$var</strong>   Преобразуемая переменная.
  <info>string</info>  <strong>$type</strong>  Допустимыми значениями параметра <strong>$type</strong> являются:  "boolean" или "bool"  "integer"
                 или "int"  "float" или "double"  "string"  "array"  "object"  "null"
                 
                 "boolean" или "bool"
                 
                 "integer" или "int"
                 
                 "float" или "double"
                 
                 "string"
                 
                 "array"
                 
                 "object"
                 
                 "null"

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>gettype()</strong>
   * Приведение типов
   * Манипуляции с типами


id: sha1
type: function
doc:
<comment>Description:</comment>
  Возвращает SHA1-хеш строки
  
  Возвращает SHA1-хеш строки <strong>$string</strong>, вычисленный по алгоритму US Secure Hash Algorithm 1.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Входная строка.
  <info>bool</info>    <strong>$binary</strong>  Если необязательный аргумент <strong>$binary</strong> имеет значение <info>true</info>, хеш возвращается в виде
                   бинарной строки из 20 символов, иначе он будет возвращён в виде 40-символьного
                   шестнадцатеричного числа.

<comment>Return:</comment>
  <info>string</info>  Возвращает SHA1-хеш в виде строки.

<comment>See Also:</comment>
   * <strong>sha1_file()</strong>
   * <strong>crc32()</strong>
   * <strong>md5()</strong>
   * <strong>hash()</strong>
   * <strong>crypt()</strong>
   * <strong>password_hash()</strong>


id: sha1_file
type: function
doc:
<comment>Description:</comment>
  Возвращает SHA1-хеш файла
  
  Вычисляет SHA1-хеш файла, имя которого задано аргументом <strong>$filename</strong>, используя алгоритм US Secure
  Hash Algorithm 1 и возвращает этот хеш. Хеш - 40-символьное шестнадцатеричное число.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Имя хешируемого файла.
  <info>bool</info>    <strong>$binary</strong>    Если установлен в <info>true</info>, возвращает 20-символьный хеш в бинарном формате.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает строку в случае успешного выполнения, иначе возвращается <info>false</info>.

<comment>See Also:</comment>
   * <strong>sha1()</strong>
   * <strong>md5_file()</strong>
   * <strong>crc32()</strong>


id: shell_exec
type: function
doc:
<comment>Description:</comment>
  Выполнить команду через оболочку и вернуть вывод в виде строки
  
  Функция идентична оператору с обратным апострофом.
  
  В Windows нижележащий канал открывается в текстовом режиме, что может привести к сбою функции для
  двоичного вывода. В таком случае попробуйте вместо этого использовать <strong>popen()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>  Команда, которая будет выполнена.

<comment>Return:</comment>
  <info>string|false|null</info>  Строка (<info>string</info>), содержащая вывод выполненной команды, <info>false</info>, если канал не
                     может быть установлен или <info>null</info> в случае возникновения ошибки или отсутствии
                     вывода команды.
                     
                     Эта функция может вернуть <info>null</info> в двух случаях: если произошла ошибка или если
                     выполняемая команда ничего не выводит. Не пользуйтесь этой функцией, для
                     определения, успешно ли выполнилась команда. Вместо этого используйте <strong>exec()</strong>,
                     так как она предоставляет возможность проверить код возврата.

<comment>See Also:</comment>
   * <strong>exec()</strong>
   * <strong>escapeshellcmd()</strong>


id: shm_attach
type: function
doc:
<comment>Description:</comment>
  Создаёт или открывает сегмент разделяемой памяти
  
  <strong>shm_attach()</strong> возвращает идентификатор, который можно использовать для доступа к разделяемой памяти
  System V по заданному ключу <strong>$key</strong>. Первый вызов создаёт сегмент размером <strong>$size</strong> и опциональными
  битами прав доступа <strong>$permissions</strong>.
  
  Следующий вызов <strong>shm_attach()</strong> с тем же ключом <strong>$key</strong> вернёт другой экземпляр <class>SysvSharedMemory</class>, но они
  оба будут указывать на один и тот же сегмент разделяемой памяти. Параметры <strong>$size</strong> и <strong>$permissions</strong>
  будут проигнорированы.

<comment>Param:</comment>
  <info>int</info>       <strong>$key</strong>          Числовой идентификатор сегмента разделяемой памяти
  <info>int|null</info>  <strong>$size</strong>         Размер памяти. Если не задан, то по умолчанию будет использоваться
                          <return>sysvshm.init_mem</return> в php.ini. Если не задан и он, тогда 10000 байт.
  <info>int</info>       <strong>$permissions</strong>  Опциональные биты прав доступа. По умолчанию 0666.

<comment>Return:</comment>
  <info>SysvSharedMemory|false</info>  Возвращает экземпляр <class>SysvSharedMemory</class> в случае успешного выполнения или
                          <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>shm_detach()</strong>
   * <strong>ftok()</strong>


id: shm_detach
type: function
doc:
<comment>Description:</comment>
  Отключается от сегмента разделяемой памяти
  
  <strong>shm_detach()</strong> отключается от сегмента разделяемой памяти, указанного в <strong>$shm</strong>, созданного
  <strong>shm_attach()</strong>. Помните, что разделяемая память всё ещё существует в системе Unix и данные всё ещё
  присутствуют.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  Сегмент разделяемой памяти, полученный из <strong>shm_attach()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>shm_attach()</strong>
   * <strong>shm_remove()</strong>
   * <strong>shm_remove_var()</strong>


id: shm_get_var
type: function
doc:
<comment>Description:</comment>
  Возвращает переменную из разделяемой памяти
  
  <strong>shm_get_var()</strong> возвращает переменную по ключу <strong>$key</strong> в указанном сегменте разделяемой памяти.
  Переменная всё ещё присутствует в разделяемой памяти.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  Сегмент разделяемой памяти, полученный из <strong>shm_attach()</strong>.
  <info>int</info>               <strong>$key</strong>  Ключ переменной.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает переменную с заданным ключом.

<comment>See Also:</comment>
   * <strong>shm_has_var()</strong>
   * <strong>shm_put_var()</strong>


id: shm_has_var
type: function
doc:
<comment>Description:</comment>
  Проверяет, существует ли конкретная запись
  
  Проверяет, существует ли конкретный ключ в сегменте разделяемой памяти.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  Сегмент разделяемой памяти, полученный из <strong>shm_attach()</strong>.
  <info>int</info>               <strong>$key</strong>  Ключ переменной.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info>, если запись существует, в противном случае возвращает <info>false</info>.

<comment>See Also:</comment>
   * <strong>shm_get_var()</strong>
   * <strong>shm_put_var()</strong>


id: shm_put_var
type: function
doc:
<comment>Description:</comment>
  Вставляет или обновляет переменную в разделяемой памяти
  
  <strong>shm_put_var()</strong> добавляет или обновляет <strong>$value</strong> с заданным ключом <strong>$key</strong>.
  
  Будет выдана ошибка (уровня <info>E_WARNING</info>), если <strong>$shm</strong> не является допустимым индексом разделяемой
  памяти SysV или если разделяемой памяти недостаточно для выполнения вашего запроса.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>    Сегмент разделяемой памяти, полученный из <strong>shm_attach()</strong>.
  <info>int</info>               <strong>$key</strong>    Ключ переменной.
  <info>mixed</info>             <strong>$value</strong>  Переменная. Могут использоваться все типы переменной, которые
                            поддерживают <strong>serialize()</strong>: обычно это означает все типы, кроме ресурсов и
                            некоторых внутренних объектов, которые не могут быть сериализованы.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>shm_get_var()</strong>
   * <strong>shm_has_var()</strong>


id: shm_remove
type: function
doc:
<comment>Description:</comment>
  Удаляет разделяемую память из систем Unix
  
  <strong>shm_remove()</strong> удаляет разделяемую память <strong>$shm</strong>. Все данные будут уничтожены.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  Сегмент разделяемой памяти, полученный из <strong>shm_attach()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>shm_remove_var()</strong>


id: shm_remove_var
type: function
doc:
<comment>Description:</comment>
  Удаляет переменную из разделяемой памяти
  
  Удаляет переменную с заданным ключом <strong>$key</strong> и освобождает занятую память.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  Сегмент разделяемой памяти, полученный из <strong>shm_attach()</strong>.
  <info>int</info>               <strong>$key</strong>  Ключ переменной.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>shm_remove()</strong>


id: shmop_close
type: function
doc:
<comment>Description:</comment>
  Закрытие блока разделяемой памяти
  
  Использование функции больше не имеет смысла. До PHP 8.0.0 она использовалась для закрытия
  ресурса.
  
  <strong>shmop_close()</strong> используется для завершения доступа к блоку разделяемой памяти.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>  Ресурс блока памяти, возвращаемый функцией <strong>shmop_open()</strong>

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.

<comment>See Also:</comment>
   * <strong>shmop_open()</strong>


id: shmop_delete
type: function
doc:
<comment>Description:</comment>
  Удаление блока разделяемой памяти
  
  <strong>shmop_delete()</strong> используется для удаления блока разделяемой памяти.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>  Ресурс блока памяти, возвращаемый функцией <strong>shmop_open()</strong>

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: shmop_open
type: function
doc:
<comment>Description:</comment>
  Резервирование или использование блока разделяемой памяти
  
  <strong>shmop_open()</strong> резервирует или использует существующий блок разделяемой памяти.

<comment>Param:</comment>
  <info>int</info>     <strong>$key</strong>          Системный идентификатор блока разделяемой памяти. Может быть задан в
                        десятичной или шестнадцатеричной кодировке.
  <info>string</info>  <strong>$mode</strong>         Доступные для использования флаги:  "a" для доступа (устанавливает флаг
                        SHM_RDONLY) Следует применять этот флаг, когда необходимо использовать ранее
                        зарезервированный участок разделяемой памяти, уже содержащий какие-либо
                        данные. В этом случае доступ возможен только для операций чтения.  "c" для
                        резервирования (устанавливает флаг IPC_CREATE) Следует применять этот флаг
                        для создания нового зарезервированного участка разделяемой памяти. Если
                        участок памяти с таким идентификатором уже существует, выполняется попытка
                        доступа к нему для последующих операций чтения и записи.  "w" для выполнения
                        операций чтения и записи Следует применять этот флаг для чтения и записи
                        данных, хранимых в разделяемой памяти. Данный флаг используется в
                        большинстве случаев.  "n" для создания в памяти нового сегмента
                        (устанавливает флаг IPC_CREATE|IPC_EXCL) Следует применять этот флаг для
                        создания нового сегмента в разделяемой памяти, но если сегмент уже
                        существует с тем же флагом, происходит отказ. Это полезно в целях
                        безопасности, т.к. позволяет избежать ошибок синхронизации (Race condition
                        exploits).
                        
                        "a" для доступа (устанавливает флаг SHM_RDONLY) Следует применять этот флаг,
                        когда необходимо использовать ранее зарезервированный участок разделяемой
                        памяти, уже содержащий какие-либо данные. В этом случае доступ возможен
                        только для операций чтения.
                        
                        "c" для резервирования (устанавливает флаг IPC_CREATE) Следует применять
                        этот флаг для создания нового зарезервированного участка разделяемой памяти.
                        Если участок памяти с таким идентификатором уже существует, выполняется
                        попытка доступа к нему для последующих операций чтения и записи.
                        
                        "w" для выполнения операций чтения и записи Следует применять этот флаг для
                        чтения и записи данных, хранимых в разделяемой памяти. Данный флаг
                        используется в большинстве случаев.
                        
                        "n" для создания в памяти нового сегмента (устанавливает флаг
                        IPC_CREATE|IPC_EXCL) Следует применять этот флаг для создания нового
                        сегмента в разделяемой памяти, но если сегмент уже существует с тем же
                        флагом, происходит отказ. Это полезно в целях безопасности, т.к. позволяет
                        избежать ошибок синхронизации (Race condition exploits).
  <info>int</info>     <strong>$permissions</strong>  Права доступа к участку памяти такие же, как к обычному файлу. Их можно
                        указывать в восьмеричном виде, например <return>0644</return>.
  <info>int</info>     <strong>$size</strong>         Размер резервируемого блока в разделяемой памяти в байтах

<comment>Return:</comment>
  <info>Shmop|false</info>  В случае успешного выполнения <strong>shmop_open()</strong> возвращает экземпляр <class>Shmop</class>, который может
               быть в дальнейшем использован для доступа к зарезервированному участку памяти. В
               случае возникновения ошибки возвращает <info>false</info>.

<comment>See Also:</comment>
   * <strong>shmop_close()</strong>
   * <strong>shmop_delete()</strong>


id: shmop_read
type: function
doc:
<comment>Description:</comment>
  Чтение данных из участка разделяемой памяти
  
  <strong>shmop_read()</strong> возвращает строковые данные, хранимые в участке разделяемой памяти.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>   Ресурс блока памяти, возвращаемый функцией <strong>shmop_open()</strong>
  <info>int</info>    <strong>$offset</strong>  Смещение, с которого начинается чтение; должно быть больше или равно нулю и меньше
                  или равно фактическому размеру сегмента разделяемой памяти.
  <info>int</info>    <strong>$size</strong>    Количество байтов для чтения; должно быть больше или равно нулю, а сумма <strong>$offset</strong> и
                  <strong>$size</strong> должна быть меньше или равна фактическому размеру сегмента разделяемой
                  памяти. <return>0</return> считывает байты shmop_size($shmid) - $start.

<comment>Return:</comment>
  <info>string</info>  Возвращает строковые данные или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>shmop_write()</strong>


id: shmop_size
type: function
doc:
<comment>Description:</comment>
  Возвращает размер блока в разделяемой памяти
  
  <strong>shmop_size()</strong> используется для получения размера блока разделяемой памяти в байтах.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>  Ресурс блока памяти, возвращаемый функцией <strong>shmop_open()</strong>

<comment>Return:</comment>
  <info>int</info>  Результатом является целое число, отражающее количество байт, зарезервированных в разделяемой
       памяти для конкретного блока.


id: shmop_write
type: function
doc:
<comment>Description:</comment>
  Запись данных в разделяемую память
  
  <strong>shmop_write()</strong> записывает строковые данные в участок разделяемой памяти.

<comment>Param:</comment>
  <info>Shmop</info>   <strong>$shmop</strong>   Ресурс блока памяти, возвращаемый функцией <strong>shmop_open()</strong>
  <info>string</info>  <strong>$data</strong>    Строковые данные для размещения в памяти
  <info>int</info>     <strong>$offset</strong>  Определяет, в каком месте участка памяти следует начать запись данных. Смещение
                   должно быть больше или равно нулю и меньше или равно фактическому размеру
                   сегмента разделяемой памяти.

<comment>Return:</comment>
  <info>int</info>  Размер записанных данных, переданных через параметр <strong>$data</strong>.

<comment>See Also:</comment>
   * <strong>shmop_read()</strong>


id: show_source
type: function
doc:
<comment>Description:</comment>
  Псевдоним highlight_file
  
  Функция является псевдонимом:  <strong>highlight_file()</strong>.


id: shuffle
type: function
doc:
<comment>Description:</comment>
  Перемешивает массив
  
  Функция перемешивает элементы массива в случайном порядке.
  
  Функция не создаёт криптографически защищённые значения и не должна использоваться для
  криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для
  разгадывания.
  
  Если нужна криптографически безопасная случайная последовательность, можно использовать класс
  <class>Random\Randomizer</class> с движком <class>Random\Engine\Secure</class>. Для простых сценариев существуют функции
  <strong>random_int()</strong> и <strong>random_bytes()</strong> с удобным API криптографически безопасного генератора
  псевдослучайных чисел (CSPRNG), поддерживаемого операционной системой.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  Массив.

<comment>Return:</comment>
  <info>true</info>  Функция всегда возвращает <info>true</info>.

<comment>See Also:</comment>
   * <strong>Random\Randomizer::shuffleArray()</strong>
   * <strong>Random\Randomizer::shuffleBytes()</strong>
   * <strong>Random\Randomizer::pickArrayKeys()</strong>
   * Сравнение функций сортировки массивов


id: simdjson_decode
type: function
doc:
<comment>Description:</comment>
  Декодирует строку JSON
  
  Принимает строку в кодировке JSON и преобразует её в значение PHP. При этом используется более
  быстрая реализация Simultaneous Instruction, Multiple Data, чем в функции <strong>json_decode()</strong>, если это
  поддерживается архитектурой компьютера.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>         Декодируемая строка (<info>string</info>) в <strong>$json</strong> формате.
                        
                        Функция работает только со строками в кодировке UTF-8.
                        
                        Функция анализирует допустимые входные данные, которые функция <strong>json_decode()</strong>
                        может декодировать, при условии, что их длина не превышает 4 Гб.
  <info>bool</info>    <strong>$associative</strong>  При значении <info>true</info>, объекты JSON будут возвращены как ассоциативные массивы
                        (<info>array</info>); при значении <info>false</info>, объекты JSON будут возвращены как объекты
                        (<info>object</info>).
  <info>int</info>     <strong>$depth</strong>        Максимальная глубина вложенности декодируемой структуры. Значение должно
                        быть больше <return>0</return> и меньше или равно <return>2147483647</return>.
                         Вызывающие команды должны использовать достаточно маленькие значения,
                        поскольку большая глубина требуют больше места в буфере и увеличивают
                        глубину рекурсии, в отличие от текущей реализации функции <strong>json_decode()</strong>.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает значение, закодированное в параметре <strong>$json</strong> в соответствующем типе PHP. Значения
         <return>true</return>, <return>false</return> и <return>null</return> возвращаются как <info>true</info>, <info>false</info> и <info>null</info> соответственно.

<comment>See Also:</comment>
   * <strong>json_encode()</strong>
   * <strong>json_decode()</strong>


id: simdjson_is_valid
type: function
doc:
<comment>Description:</comment>
  Проверяет, является ли строка JSON корректной
  
  Принимает строку, закодированную в JSON и возвращает true, если она корректная.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>   Строка (<info>string</info>) в формате <strong>$json</strong> для проверки.
                  
                  Функция работает только со строками в кодировке UTF-8.
                  
                  Функция анализирует допустимые входные данные, которые функция <strong>json_decode()</strong> может
                  декодировать, при условии, что их длина не превышает 4 Гб.
  <info>int</info>     <strong>$depth</strong>  Максимальная глубина вложенности декодируемой структуры. Значение должно быть
                  больше <return>0</return> и меньше или равно <return>2147483647</return>.
                   Вызывающие команды должны использовать достаточно маленькие значения, поскольку
                  большая глубина требуют больше места в буфере и увеличивают глубину рекурсии, в
                  отличие от текущей реализации функции <strong>json_decode()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info>, если параметр <strong>$json</strong> является корректной строкой JSON, в противном случае
        возвращает <info>false</info>.

<comment>See Also:</comment>
   * <strong>json_encode()</strong>
   * <strong>json_decode()</strong>


id: simdjson_key_count
type: function
doc:
<comment>Description:</comment>
  Возвращает значение по указателю JSON
  
  Подсчитывает количество элементов объекта/массива, найденных по запрошенному указателю JSON.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>                  Запрашиваемая строка (<info>string</info>) в формате <strong>$json</strong>.
  <info>string</info>  <strong>$key</strong>                   Строка (<info>string</info>) указатель JSON.
  <info>int</info>     <strong>$depth</strong>                 Максимальная глубина вложенности декодируемой структуры. Значение
                                 должно быть больше <return>0</return> и меньше или равно <return>2147483647</return>.
                                  Вызывающие команды должны использовать достаточно маленькие
                                 значения, поскольку большая глубина требуют больше места в буфере и
                                 увеличивают глубину рекурсии, в отличие от текущей реализации
                                 функции <strong>json_decode()</strong>.
  <info>bool</info>    <strong>$throw_if_uncountable</strong>  При значении <info>true</info> вместо возвращаемого значения 0 будет выброшено
                                 исключение <class>SimdJsonException</class>, если значение, на которое указывает
                                 указатель JSON, не является ни объектом, ни массивом.

<comment>Return:</comment>
  <info>int</info>  Возвращает целое число (<info>int</info>) с количеством элементов значения по заданному указателю JSON.


id: simdjson_key_exists
type: function
doc:
<comment>Description:</comment>
  Проверяет, содержит ли JSON значение, на которое ссылается указатель JSON
  
  Подсчитывает количество элементов объекта/массива, найденных по запрошенному указателю JSON.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>                  Запрашиваемая строка (<info>string</info>) в формате <strong>$json</strong>.
  <info>string</info>  <strong>$key</strong>                   Строка (<info>string</info>) указатель JSON.
  <info>int</info>     <strong>$depth</strong>                 Максимальная глубина вложенности декодируемой структуры. Значение
                                 должно быть больше <return>0</return> и меньше или равно <return>2147483647</return>.
                                  Вызывающие команды должны использовать достаточно маленькие
                                 значения, поскольку большая глубина требуют больше места в буфере и
                                 увеличивают глубину рекурсии, в отличие от текущей реализации
                                 функции <strong>json_decode()</strong>.
  <info></info>        <strong>$throw_if_uncountable</strong>  При значении <info>true</info> вместо возвращаемого значения 0 будет выброшено
                                 исключение <class>SimdJsonException</class>, если значение, на которое указывает
                                 указатель JSON, не является ни объектом, ни массивом.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info>, если указатель JSON действителен и ссылается на значение, найденное в
        корректной строке JSON. Возвращает <info>false</info>, если JSON действителен, но не содержит указателя
        JSON.


id: simdjson_key_value
type: function
doc:
<comment>Description:</comment>
  Декодирует значение строки JSON, расположенной по запрошенному указателю JSON
  
  Декодирует и возвращает значение, найденное в запрошенном указателе JSON.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>         Запрашиваемая и декодируемая строка (<info>string</info>) в формате <strong>$json</strong>.
                        
                        Функция работает только со строками в кодировке UTF-8.
                        
                        Функция анализирует допустимые входные данные, которые функция <strong>json_decode()</strong>
                        может декодировать, при условии, что их длина не превышает 4 Гб.
  <info>string</info>  <strong>$key</strong>          Строка (<info>string</info>) указатель JSON.
  <info>bool</info>    <strong>$associative</strong>  При значении <info>true</info>, объекты JSON будут возвращены как ассоциативные массивы
                        (<info>array</info>); при значении <info>false</info>, объекты JSON будут возвращены как объекты
                        (<info>object</info>).
  <info>int</info>     <strong>$depth</strong>        Максимальная глубина вложенности декодируемой структуры. Значение должно
                        быть больше <return>0</return> и меньше или равно <return>2147483647</return>.
                         Вызывающие команды должны использовать достаточно маленькие значения,
                        поскольку большая глубина требуют больше места в буфере и увеличивают
                        глубину рекурсии, в отличие от текущей реализации функции <strong>json_decode()</strong>.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает часть значения, закодированное в параметре <strong>$json</strong> на которую ссылается ключ <strong>$key</strong>
         в соответствующем PHP-типе. Значения <return>true</return>, <return>false</return> и <return>null</return> возвращаются как <info>true</info>, <info>false</info> и <info>null</info>
         соответственно.

<comment>See Also:</comment>
   * <strong>json_encode()</strong>
   * <strong>simdjson_decode()</strong>


id: similar_text
type: function
doc:
<comment>Description:</comment>
  Вычисляет степень похожести двух строк
  
  Вычисляет степень похожести двух строк по алгоритму, описанному в Programming Classics:
  Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Эта реализация алгоритма
  не использует стека, использованного в оригинале, вместо этого применяются рекурсивные вызовы, что
  в некоторых случаях может ускорить процесс. Следует отметить, что сложность алгоритма составляет
  O(N**3), где N - длина более длинной из двух строк.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  Первая строка.
  <info>string</info>  <strong>$string2</strong>  Вторая строка.
                    
                    Изменение порядка <strong>$string1</strong> и <strong>$string2</strong> может привести к другому результату; см,
                    пример ниже.
  <info>float</info>   <strong>$percent</strong>  При передаче по ссылке третьего аргумента, <strong>similar_text()</strong> присваивает ему
                    степень похожести двух строк в процентах, деля результат <strong>similar_text()</strong> на
                    среднее число длин заданных строк <return>100</return> раз.

<comment>Return:</comment>
  <info>int</info>  Возвращается количество совпадающих символов в двух строках.
       
       Количество совпадающих символов вычисляется путём нахождения самой длинной первой общей
       подстроки, а затем делает это для префиксов и суффиксов рекурсивно. Добавляются длины всех
       найденных общих подстрок.

<comment>See Also:</comment>
   * <strong>levenshtein()</strong>
   * <strong>soundex()</strong>


id: simplexml_import_dom
type: function
doc:
<comment>Description:</comment>
  Получает объект класса SimpleXMLElement из узла DOM
    
  
  Эта функция берет узел документа DOM и превращает его в узел SimpleXML. Затем этот новый объект
  может быть использован как первичный элемент SimpleXML.

<comment>Param:</comment>
  <info>SimpleXMLElement|DOMNode</info>  <strong>$node</strong>        Узел-элемент DOM
  <info>string|null</info>               <strong>$class_name</strong>  Вы можете использовать этот дополнительный параметр для
                                         того, чтобы функция <strong>simplexml_import_dom()</strong> возвращала
                                         объект указанного класса. Этот класс должен расширять класс
                                         <info>SimpleXMLElement</info>.

<comment>Return:</comment>
  <info>SimpleXMLElement|null</info>  Возвращает <info>SimpleXMLElement</info> или <info>null</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>dom_import_simplexml()</strong>
   * 


id: simplexml_load_file
type: function
doc:
<comment>Description:</comment>
  Интерпретирует XML-файл в объект
    
  
  Преобразует правильно сформированный XML-документ в указанном файле в объект.

<comment>Param:</comment>
  <info>string</info>       <strong>$filename</strong>             Путь к XML-файлу
  <info>string|null</info>  <strong>$class_name</strong>           Вы можете использовать этот необязательный параметр для того,
                                     чтобы функция <strong>simplexml_load_file()</strong> возвращала объект
                                     указанного класса. Этот класс должен расширять класс
                                     <info>SimpleXMLElement</info>.
  <info>int</info>          <strong>$options</strong>              Побитовое ИЛИ (<return>OR</return>)констант опций libxml.
  <info>string</info>       <strong>$namespace_or_prefix</strong>  Префикс пространства имён или URI.
  <info>bool</info>         <strong>$is_prefix</strong>            <info>true</info>, если <strong>$namespace_or_prefix</strong> является префиксом, и <info>false</info>,
                                     если URI; по умолчанию равен <info>false</info>.

<comment>Return:</comment>
  <info>SimpleXMLElement|false</info>  Возвращает объект (<info>object</info>) класса <info>SimpleXMLElement</info> со свойствами,
                          содержащими данные, которые хранятся внутри XML-документа или <info>false</info> в
                          случае возникновения ошибки.
                          
                          Эта функция может возвращать как логическое значение <info>false</info>, так и значение
                          не типа boolean, которое приводится к <info>false</info>. За более подробной
                          информацией обратитесь к разделу Булев тип. Используйте оператор === для
                          проверки значения, возвращаемого этой функцией.

<comment>See Also:</comment>
   * <strong>simplexml_load_string()</strong>
   * SimpleXMLElement::__construct
   * 
   * <strong>libxml_use_internal_errors()</strong>
   * 
   * <strong>libxml_set_streams_context()</strong>


id: simplexml_load_string
type: function
doc:
<comment>Description:</comment>
  Интерпретирует строку с XML в объект
    
  
  Получает правильно сформированную XML-строку и возвращает её как объект.

<comment>Param:</comment>
  <info>string</info>       <strong>$data</strong>                 Правильно сформированная XML-строка
  <info>string|null</info>  <strong>$class_name</strong>           Вы можете использовать этот необязательный параметр для того,
                                     чтобы функция <strong>simplexml_load_string()</strong> возвращала объект
                                     указанного класса. Этот класс должен расширять класс
                                     <info>SimpleXMLElement</info>.
  <info>int</info>          <strong>$options</strong>              Побитовое ИЛИ (<return>OR</return>)констант опций libxml.
  <info>string</info>       <strong>$namespace_or_prefix</strong>  Префикс пространства имён или URI.
  <info>bool</info>         <strong>$is_prefix</strong>            <info>true</info>, если <strong>$namespace_or_prefix</strong> является префиксом, и <info>false</info>,
                                     если URI; по умолчанию равен <info>false</info>.

<comment>Return:</comment>
  <info>SimpleXMLElement|false</info>  Возвращает объект (<info>object</info>) класса <info>SimpleXMLElement</info> со свойствами,
                          содержащими данные, которые хранятся внутри XML-документа или <info>false</info> в
                          случае возникновения ошибки.
                          
                          Эта функция может возвращать как логическое значение <info>false</info>, так и значение
                          не типа boolean, которое приводится к <info>false</info>. За более подробной
                          информацией обратитесь к разделу Булев тип. Используйте оператор === для
                          проверки значения, возвращаемого этой функцией.

<comment>See Also:</comment>
   * <strong>simplexml_load_file()</strong>
   * SimpleXMLElement::__construct
   * 
   * <strong>libxml_use_internal_errors()</strong>
   * 


id: sin
type: function
doc:
<comment>Description:</comment>
  Синус
  
  <strong>sin()</strong> возвращает синус параметра <strong>$num</strong>. Параметр <strong>$num</strong> задаётся в радианах.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  Значение в радианах

<comment>Return:</comment>
  <info>float</info>  Синус угла <strong>$num</strong>

<comment>See Also:</comment>
   * <strong>asin()</strong>
   * <strong>sinh()</strong>
   * <strong>cos()</strong>
   * <strong>tan()</strong>
   * <strong>deg2rad()</strong>


id: sinh
type: function
doc:
<comment>Description:</comment>
  Гиперболический синус
  
  Возвращает гиперболический синус <strong>$num</strong>, определяемый как <return>(exp($num) - exp(-$num))/2</return>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  Входное значение

<comment>Return:</comment>
  <info>float</info>  Гиперболический синус <strong>$num</strong>

<comment>See Also:</comment>
   * <strong>sin()</strong>
   * <strong>asinh()</strong>
   * <strong>cosh()</strong>
   * <strong>tanh()</strong>


id: sizeof
type: function
doc:
<comment>Description:</comment>
  Псевдоним count
  
  Функция является псевдонимом:  <strong>count()</strong>.


id: sleep
type: function
doc:
<comment>Description:</comment>
  Задержка выполнения
  
  Откладывает исполнение программы на число секунд, указанное в параметре <strong>$seconds</strong>.
  
  Чтобы отложить выполнение программы на доли секунды, используйте функцию <strong>usleep()</strong>, поскольку
  функция <strong>sleep()</strong> ожидает целое число (<info>int</info>). Например, sleep(0.25) приостановит выполнение программы
  на <return>0</return> секунд.

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>  Время остановки в секундах (должно быть больше или равно <return>0</return>).

<comment>Return:</comment>
  <info>int</info>  Возвращает 0 в случае успешного выполнения.
       
       Если вызов был прерван сигналом, функция <strong>sleep()</strong> возвратит значение, не равное нулю. В
       Windows это значение всегда будет равно <return>192</return> (значение константы Windows API
       <info>WAIT_IO_COMPLETION</info>). На других платформах возвращаемом значением будет количество секунд,
       оставшихся до задержки.

<comment>See Also:</comment>
   * <strong>usleep()</strong>
   * <strong>time_nanosleep()</strong>
   * <strong>time_sleep_until()</strong>
   * <strong>set_time_limit()</strong>


id: snmp2_get
type: function
doc:
<comment>Description:</comment>
  Получает объект SNMP
  
  Функция <strong>snmp2_get()</strong> используется для чтения значения объекта SNMP, указанного в <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Агент SNMP.
  <info>string</info>        <strong>$community</strong>  Read-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Объект SNMP.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает значение объекта SNMP в случае успешного выполнения или <info>false</info> в случае
         возникновения ошибки.

<comment>See Also:</comment>
   * <strong>snmp2_set()</strong>


id: snmp2_getnext
type: function
doc:
<comment>Description:</comment>
  Получает объект SNMP, который следует за данным идентификатором объекта
  
  Функция <strong>snmp2_get_next()</strong> используется для чтения значения объекта SNMP, который следует за
  указанным <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$community</strong>  Read-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Идентификатор объекта SNMP, который предшествует желаемому.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает значение объекта SNMP в случае успешного выполнения или <info>false</info> в случае
         возникновения ошибки. В случае возникновения ошибки выводится ошибка уровня E_WARNING.

<comment>See Also:</comment>
   * <strong>snmp2_get()</strong>
   * <strong>snmp2_walk()</strong>


id: snmp2_real_walk
type: function
doc:
<comment>Description:</comment>
  Возвращает все объекты, включая их идентификатор
  
  Функция <strong>snmp2_real_walk()</strong> используется для обхода объектов SNMP, начиная с <strong>$object_id</strong> и возвращает
  не только их значения, но и идентификаторы объектов.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$community</strong>  Read-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Идентификатор объекта SNMP, который предшествует желаемому.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>array|false</info>  Возвращает ассоциативный массив идентификаторов объектов SNMP и их значений в случае
               успешного выполнения или <info>false</info> в случае возникновения ошибки. В случае возникновения
               ошибки выводит ошибку уровня E_WARNING.

<comment>See Also:</comment>
   * <strong>snmp2_walk()</strong>


id: snmp2_set
type: function
doc:
<comment>Description:</comment>
  Устанавливает значение объекта SNMP
  
  <strong>snmp2_set()</strong> используется для установки значения объекта SNMP, указанного в <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$community</strong>  Write-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Идентификатор объекта SNMP.
  <info>array|string</info>  <strong>$type</strong>       MIB указывает тип идентификатора каждого объекта. Он должен быть указан
                            в виде одного символа из
                            следующего списка.
                            
                            Если при компиляции библиотеки SNMP была определена опция
                            <info>OPAQUE_SPECIAL_TYPES</info>, то также могут быть использованы следующие типы:
                            
                            Большинство этих значений используют очевидный тип ASN.1.
                            's', 'x', 'd' и 'b' — это
                            все разные способы указания значения OCTET STRING, а
                            беззнаковый тип 'u' также используется для обработки
                            значений Gauge32.
                            
                            Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib"
                            или были указаны в конфигурационном файле libsnmp, то для указания
                            параметра <strong>$type</strong> можно использовать нотацию
                            '=', т.к. тип всех идентификаторов объектов будет автоматически
                            считан из MIB.
                            
                            Обратите внимание, что есть два способа установить переменную
                            типа BITS, например,
                            "SYNTAX    BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5),
                            https(6)}":
                            
                            С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать
                            этот метод, т.к. GET-запрос для того же OID вернёт, к примеру, 0xF8.
                            
                            С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного
                            префикса "0x".
                            
                            Подробнее смотрите в разделе с примерами.
  <info>array|string</info>  <strong>$value</strong>      Новое значение.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.
        
        Если хост SNMP отклоняет тип данных, выводится ошибка уровня E_WARNING вроде "Warning: Error
        in packet. Reason: (badValue) The value given has the wrong type or length.". Если указан
        неизвестный или недопустимый OID, вероятно, выведется предупреждение "Could not add
        variable".

<comment>See Also:</comment>
   * <strong>snmp2_get()</strong>


id: snmp2_walk
type: function
doc:
<comment>Description:</comment>
  Получает все объекты SNMP из агента
  
  Функция <strong>snmp2_walk()</strong> используется для чтения всех значений из агента SNMP, указанного в <strong>$hostname</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Агент SNMP (сервер).
  <info>string</info>        <strong>$community</strong>  Read-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Если <info>null</info>, <strong>$object_id</strong> берётся в качестве корня дерева объектов SNMP и
                            все объекты этого дерева возвращаются в виде массива.
                            
                            Если указан <strong>$object_id</strong>, возвращаются все объекты SNMP ниже этого
                            <strong>$object_id</strong>.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>array|false</info>  Возвращает массив значений объекта SNMP, начиная с <strong>$object_id</strong> в качестве корня или
               <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>snmp2_real_walk()</strong>


id: snmp3_get
type: function
doc:
<comment>Description:</comment>
  Получает объект SNMP
  
  Функция <strong>snmp3_get()</strong> используется для чтения значения объекта SNMP, указанного в <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$security_name</strong>       Имя безопасности, обычно какое-то имя пользователя.
  <info>string</info>        <strong>$security_level</strong>      Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).
  <info>string</info>        <strong>$auth_protocol</strong>       Протокол аутентификации (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return> или <return>"SHA512"</return>).
  <info>string</info>        <strong>$auth_passphrase</strong>     Пароль для аутентификации.
  <info>string</info>        <strong>$privacy_protocol</strong>    Протокол конфиденциальности (DES или AES).
  <info>string</info>        <strong>$privacy_passphrase</strong>  Пароль конфиденциальности.
  <info>array|string</info>  <strong>$object_id</strong>           Идентификатор объекта SNMP.
  <info>int</info>           <strong>$timeout</strong>             Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>             Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает значение объекта SNMP в случае успешного выполнения или <info>false</info> в случае
         возникновения ошибки.

<comment>See Also:</comment>
   * <strong>snmp3_set()</strong>


id: snmp3_getnext
type: function
doc:
<comment>Description:</comment>
  Получает объект SNMP, который следует за указанным идентификатором объекта
  
  Функция <strong>snmp3_getnext()</strong> используется для чтения значения объекта SNMP, который следует за
  указанным <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$security_name</strong>       Имя безопасности, обычно какое-то имя пользователя.
  <info>string</info>        <strong>$security_level</strong>      Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).
  <info>string</info>        <strong>$auth_protocol</strong>       Протокол аутентификации (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return> или <return>"SHA512"</return>).
  <info>string</info>        <strong>$auth_passphrase</strong>     Пароль для аутентификации.
  <info>string</info>        <strong>$privacy_protocol</strong>    Протокол конфиденциальности (DES или AES).
  <info>string</info>        <strong>$privacy_passphrase</strong>  Пароль конфиденциальности.
  <info>array|string</info>  <strong>$object_id</strong>           Идентификатор объекта SNMP.
  <info>int</info>           <strong>$timeout</strong>             Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>             Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает значение объекта SNMP в случае успешного выполнения или <info>false</info> в случае
         возникновения ошибки. В случае ошибки выводит ошибку уровня E_WARNING.

<comment>See Also:</comment>
   * <strong>snmp3_get()</strong>
   * <strong>snmp3_walk()</strong>


id: snmp3_real_walk
type: function
doc:
<comment>Description:</comment>
  Возвращает все объекты, включая их идентификатор в указанном объекте
  
  Функция <strong>snmp3_real_walk()</strong> используется для обхода объектов SNMP, начиная с <strong>$object_id</strong> и возвращает
  не только их значения, но и идентификаторы объектов.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$security_name</strong>       Имя безопасности, обычно какое-то имя пользователя.
  <info>string</info>        <strong>$security_level</strong>      Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).
  <info>string</info>        <strong>$auth_protocol</strong>       Протокол аутентификации (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return> или <return>"SHA512"</return>).
  <info>string</info>        <strong>$auth_passphrase</strong>     Пароль аутентификации.
  <info>string</info>        <strong>$privacy_protocol</strong>    Протокол конфиденциальности (DES or AES).
  <info>string</info>        <strong>$privacy_passphrase</strong>  Пароль конфиденциальности.
  <info>array|string</info>  <strong>$object_id</strong>           Идентификатор объекта SNMP.
  <info>int</info>           <strong>$timeout</strong>             Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>             Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>array|false</info>  Возвращает ассоциативный массив идентификаторов объектов SNMP и их значений в случае
               успешного выполнения или <info>false</info> в случае возникновения ошибки. В случае ошибки выводит
               ошибку уровня E_WARNING.

<comment>See Also:</comment>
   * <strong>snmpwalk()</strong>


id: snmp3_set
type: function
doc:
<comment>Description:</comment>
  Устанавливает значение объекта SNMP
  
  Функция <strong>snmp3_set()</strong> используется для установки значения объекта SNMP, указанного в <strong>$object_id</strong>.
  
  Даже если уровень безопасности не использует протокол авторизации или пароль, необходимо указать
  корректные значения.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$security_name</strong>       Имя безопасности, обычно какое-то имя пользователя.
  <info>string</info>        <strong>$security_level</strong>      Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).
  <info>string</info>        <strong>$auth_protocol</strong>       Протокол аутентификации (MD5 или SHA).
  <info>string</info>        <strong>$auth_passphrase</strong>     Пароль для аутентификации.
  <info>string</info>        <strong>$privacy_protocol</strong>    Протокол конфиденциальности (DES или AES).
  <info>string</info>        <strong>$privacy_passphrase</strong>  Пароль конфиденциальности.
  <info>array|string</info>  <strong>$object_id</strong>           Идентификатор объекта SNMP.
  <info>array|string</info>  <strong>$type</strong>                MIB указывает тип идентификатора каждого объекта. Он должен
                                     быть указан в виде одного символа из
                                     следующего списка.
                                     
                                     Если при компиляции библиотеки SNMP была определена опция
                                     <info>OPAQUE_SPECIAL_TYPES</info>, то также могут быть использованы
                                     следующие типы:
                                     
                                     Большинство этих значений используют очевидный тип ASN.1.
                                     's', 'x', 'd' и 'b' — это
                                     все разные способы указания значения OCTET STRING, а
                                     беззнаковый тип 'u' также используется для обработки
                                     значений Gauge32.
                                     
                                     Если MIB-файлы были загружены в MIB-дерево с помощью
                                     "snmp_read_mib"
                                     или были указаны в конфигурационном файле libsnmp, то для
                                     указания
                                     параметра <strong>$type</strong> можно использовать нотацию
                                     '=', т.к. тип всех идентификаторов объектов будет автоматически
                                     считан из MIB.
                                     
                                     Обратите внимание, что есть два способа установить переменную
                                     типа BITS, например,
                                     "SYNTAX    BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4),
                                     ssh(5), https(6)}":
                                     
                                     С помощью типа "b" и списка битовых чисел. Не рекомендуется
                                     использовать этот метод, т.к. GET-запрос для того же OID
                                     вернёт, к примеру, 0xF8.
                                     
                                     С помощью типа "x" и шестнадцатеричного числа, но без(!)
                                     обычного префикса "0x".
                                     
                                     Подробнее смотрите в разделе с примерами.
  <info>array|string</info>  <strong>$value</strong>               Новое значение.
  <info>int</info>           <strong>$timeout</strong>             Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>             Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.
        
        Если хост SNMP отклоняет тип данных, выводится ошибка уровня E_WARNING вроде "Warning: Error
        in packet. Reason: (badValue) The value given has the wrong type or length.". Если указан
        неизвестный или недопустимый OID, вероятно, выведется предупреждение "Could not add
        variable".


id: snmp3_walk
type: function
doc:
<comment>Description:</comment>
  Получает все объекты SNMP из агента
  
  Функция <strong>snmp3_walk()</strong> используется для чтения всех значений из агента SNMP, указанного в <strong>$hostname</strong>.
  
  Даже если уровень безопасности не использует протокол авторизации или пароль, необходимо указать
  корректные значения.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$security_name</strong>       Имя безопасности, обычно какое-то имя пользователя.
  <info>string</info>        <strong>$security_level</strong>      Уровень безопасности (noAuthNoPriv|authNoPriv|authPriv).
  <info>string</info>        <strong>$auth_protocol</strong>       Протокол аутентификации (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return> или <return>"SHA512"</return>).
  <info>string</info>        <strong>$auth_passphrase</strong>     Пароль для аутентификации.
  <info>string</info>        <strong>$privacy_protocol</strong>    Протокол конфиденциальности (DES или AES).
  <info>string</info>        <strong>$privacy_passphrase</strong>  Пароль конфиденциальности.
  <info>array|string</info>  <strong>$object_id</strong>           Если <info>null</info>, <strong>$object_id</strong> берётся в качестве корня дерева объектов
                                     SNMP и все объекты этого дерева возвращаются в виде массива.
                                     
                                     Если указан <strong>$object_id</strong>, возвращаются все объекты SNMP ниже
                                     этого <strong>$object_id</strong>.
  <info>int</info>           <strong>$timeout</strong>             Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>             Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>array|false</info>  Возвращает массив значений объекта SNMP, начиная с <strong>$object_id</strong> в качестве корня или
               <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>snmp3_real_walk()</strong>


id: snmp_get_quick_print
type: function
doc:
<comment>Description:</comment>
  Получает текущее значение параметра quick_print библиотеки NET-SNMP
    
  
  Возвращает текущее значение, хранящееся в библиотеке NET-SNMP для quick_print. quick_print по
  умолчанию отключён.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info>, если quick_print включён или <info>false</info> в противном случае.

<comment>See Also:</comment>
   * <strong>snmp_set_quick_print()</strong> для полного описания того,
     что делает quick_print.


id: snmp_get_valueretrieval
type: function
doc:
<comment>Description:</comment>
  Возвращает метод, как будут возвращены значения SNMP

<comment>Return:</comment>
  <info>int</info>  Объединение констант (<info>SNMP_VALUE_LIBRARY</info> или <info>SNMP_VALUE_PLAIN</info>) с возможным набором
       SNMP_VALUE_OBJECT.

<comment>See Also:</comment>
   * <strong>snmp_set_valueretrieval()</strong>
   * 


id: snmp_read_mib
type: function
doc:
<comment>Description:</comment>
  Читает и анализирует файл MIB в активном дереве MIB
    
  
  Функция используется для загрузки дополнительных, например, специфичных для поставщика, MIB, чтобы
  можно было использовать удобочитаемые OID, таких как <return>VENDOR-MIB::foo.1</return>, вместо подверженных
  ошибкам числовых OID.
  
  Порядок, в котором загружаются MIB, имеет значение, поскольку базовая библиотека Net-SNMP будет
  печатать предупреждения, если указанные объекты не могут быть разрешены.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Имя файла MIB.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: snmp_set_enum_print
type: function
doc:
<comment>Description:</comment>
  Возвращает все значения, которые являются перечислениями, с их значением перечисления вместо
  необработанного целого числа
    
  
  Функция переключает, если snmpwalk/snmpget и т.д. должны автоматически искать значения
  перечисления в MIB и возвращать их вместе с их удобочитаемой строкой.

<comment>Param:</comment>
  <info>bool</info>  <strong>$enable</strong>  Поскольку значение интерпретируется библиотекой Net-SNMP как логическое значение,
                 оно может быть только "0" or "1".

<comment>Return:</comment>
  <info>true</info>  Функция всегда возвращает <info>true</info>.


id: snmp_set_oid_numeric_print
type: function
doc:
<comment>Description:</comment>
  Псевдоним snmp_set_oid_output_format
  
  Функция является псевдонимом:  <strong>snmp_set_oid_output_format()</strong>.

<comment>See Also:</comment>
   * <strong>snmp_set_oid_output_format()</strong>


id: snmp_set_oid_output_format
type: function
doc:
<comment>Description:</comment>
  Устанавливает выходной формат OID
    
  
  <strong>snmp_set_oid_output_format()</strong> устанавливает полный или числовой формат вывода.

<comment>Param:</comment>
  <info>int</info>  <strong>$format</strong>  

<comment>Return:</comment>
  <info>true</info>  Функция всегда возвращает <info>true</info>.


id: snmp_set_quick_print
type: function
doc:
<comment>Description:</comment>
  Устанавливает значение enable в библиотеке NET-SNMP
  
  Устанавливает значение <strong>$enable</strong> в библиотеке NET-SNMP. Если установлено (1), библиотека SNMP будет
  возвращать "быстро выводимые" значения. Это означает, что выведется только значение. Если <strong>$enable</strong>
  выключен (по умолчанию), библиотека NET-SNMP выводит дополнительную информацию, включая тип
  значения (например, IpAddress или OID). Кроме того, если quick_print выключен, библиотека выводит
  дополнительные шестнадцатеричные значения для всех строк из трёх или менее символов.
  
  По умолчанию библиотека NET-SNMP возвращает подробные значения, quick_print используется для
  возврата только значения.
  
  В настоящее время строки по-прежнему возвращаются с дополнительными кавычками, это будет
  исправлено в более поздних версиях.

<comment>Param:</comment>
  <info>bool</info>  <strong>$enable</strong>  

<comment>Return:</comment>
  <info>true</info>  Функция всегда возвращает <info>true</info>.

<comment>See Also:</comment>
   * <strong>snmp_get_quick_print()</strong>


id: snmp_set_valueretrieval
type: function
doc:
<comment>Description:</comment>
  Определяет метод возврата значений SNMP

<comment>Param:</comment>
  <info>int</info>  <strong>$method</strong>  

<comment>Return:</comment>
  <info>true</info>  Функция всегда возвращает <info>true</info>.

<comment>See Also:</comment>
   * <strong>snmp_get_valueretrieval()</strong>
   * 


id: snmpget
type: function
doc:
<comment>Description:</comment>
  Получает объект SNMP
  
  Функция <strong>snmpget()</strong> используется для чтения значения объекта SNMP, указанного в <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Агент SNMP.
  <info>string</info>        <strong>$community</strong>  Read-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Объект SNMP.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает значение объекта SNMP в случае успешного выполнения или <info>false</info> в случае
         возникновения ошибки.

<comment>See Also:</comment>
   * <strong>snmpset()</strong>


id: snmpgetnext
type: function
doc:
<comment>Description:</comment>
  Получает объект SNMP, который следует за данным идентификатором объекта
  
  Функция <strong>snmpgetnext()</strong> используется для чтения значения объекта SNMP, который следует за указанным
  <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$community</strong>  Read-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Идентификатор объекта SNMP, который предшествует желаемому.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>mixed</info>  Возвращает значение объекта SNMP в случае успешного выполнения или <info>false</info> в случае
         возникновения ошибки. В случае возникновения ошибки выводится ошибка уровня E_WARNING.

<comment>See Also:</comment>
   * <strong>snmpget()</strong>
   * <strong>snmpwalk()</strong>


id: snmprealwalk
type: function
doc:
<comment>Description:</comment>
  Возвращает все объекты, включая их идентификатор
  
  Функция <strong>snmprealwalk()</strong> используется для обхода объектов SNMP, начиная с <strong>$object_id</strong> и возвращает не
  только их значения, но и их идентификаторы объектов.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$community</strong>  Read-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Идентификатор объекта SNMP, который предшествует желаемому.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>array|false</info>  Возвращает ассоциативный массив идентификаторов объектов SNMP и их значений в случае
               успешного выполнения или <info>false</info> в случае возникновения ошибки. В случае возникновения
               ошибки выводит ошибку уровня E_WARNING.

<comment>See Also:</comment>
   * <strong>snmpwalk()</strong>


id: snmpset
type: function
doc:
<comment>Description:</comment>
  Устанавливает значение объекта SNMP
  
  <strong>snmpset()</strong> используется для установки значения объекта SNMP, указанного в параметре <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Имя хоста агента (сервера) SNMP.
  <info>string</info>        <strong>$community</strong>  Write-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Идентификатор объекта SNMP.
  <info>array|string</info>  <strong>$type</strong>       MIB указывает тип идентификатора каждого объекта. Он должен быть указан
                            в виде одного символа из
                            следующего списка.
                            
                            Если при компиляции библиотеки SNMP была определена опция
                            <info>OPAQUE_SPECIAL_TYPES</info>, то также могут быть использованы следующие типы:
                            
                            Большинство этих значений используют очевидный тип ASN.1.
                            's', 'x', 'd' и 'b' — это
                            все разные способы указания значения OCTET STRING, а
                            беззнаковый тип 'u' также используется для обработки
                            значений Gauge32.
                            
                            Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib"
                            или были указаны в конфигурационном файле libsnmp, то для указания
                            параметра <strong>$type</strong> можно использовать нотацию
                            '=', т.к. тип всех идентификаторов объектов будет автоматически
                            считан из MIB.
                            
                            Обратите внимание, что есть два способа установить переменную
                            типа BITS, например,
                            "SYNTAX    BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5),
                            https(6)}":
                            
                            С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать
                            этот метод, т.к. GET-запрос для того же OID вернёт, к примеру, 0xF8.
                            
                            С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного
                            префикса "0x".
                            
                            Подробнее смотрите в разделе с примерами.
  <info>array|string</info>  <strong>$value</strong>      Новое значение.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.
        
        Если хост SNMP отклоняет тип данных, выводится ошибка уровня E_WARNING вроде "Warning: Error
        in packet. Reason: (badValue) The value given has the wrong type or length.". Если указан
        неизвестный или недопустимый OID, вероятно, выведется предупреждение "Could not add
        variable".

<comment>See Also:</comment>
   * <strong>snmpget()</strong>


id: snmpwalk
type: function
doc:
<comment>Description:</comment>
  Получает все объекты SNMP из агента
  
  Функция <strong>snmpwalk()</strong> используется для чтения всех значений из агента SNMP, указанного в <strong>$hostname</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Агент SNMP (сервер).
  <info>string</info>        <strong>$community</strong>  Read-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Если <info>null</info>, <strong>$object_id</strong> берётся в качестве корня дерева объектов SNMP и
                            все объекты этого дерева возвращаются в виде массива.
                            
                            Если указан <strong>$object_id</strong>, возвращаются все объекты SNMP ниже этого
                            <strong>$object_id</strong>.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>array|false</info>  Возвращает массив значений объекта SNMP, начиная с <strong>$object_id</strong> в качестве корня или
               <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>snmprealwalk()</strong>


id: snmpwalkoid
type: function
doc:
<comment>Description:</comment>
  Запрос дерева информации о сетевом объекте
  
  Функция <strong>snmpwalkoid()</strong> используется для чтения всех идентификаторов объектов и их соответствующих
  значений из агента SNMP, указанного в <strong>$hostname</strong>.
  
  Функции <strong>snmpwalkoid()</strong> и <strong>snmpwalk()</strong> существует по историческим причинам. Обе функции предусмотрены
  для обратной совместимости. Вместо этого используйте функцию <strong>snmprealwalk()</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   Агент SNMP.
  <info>string</info>        <strong>$community</strong>  Read-сообщество.
  <info>array|string</info>  <strong>$object_id</strong>  Если <info>null</info>, <strong>$object_id</strong> берётся в качестве корня дерева объектов SNMP и
                            все объекты этого дерева возвращаются в виде массива.
                            
                            Если указан <strong>$object_id</strong>, возвращаются все объекты SNMP ниже этого
                            <strong>$object_id</strong>.
  <info>int</info>           <strong>$timeout</strong>    Время ожидания в микросекундах.
  <info>int</info>           <strong>$retries</strong>    Количество повторных попыток при истечении времени ожидания.

<comment>Return:</comment>
  <info>array|false</info>  Возвращает ассоциативный массив с идентификаторами объектов и соответствующими им
               значениями объектов, начиная с <strong>$object_id</strong> в качестве корня или <info>false</info> в случае
               возникновения ошибки.

<comment>See Also:</comment>
   * <strong>snmpwalk()</strong>


id: socket_accept
type: function
doc:
<comment>Description:</comment>
  Принимает соединение на сокете
  
  После того, как сокет <strong>$socket</strong> был создан при помощи функции <strong>socket_create()</strong>, привязан к имени при
  помощи функции <strong>socket_bind()</strong>, и ему было указано слушать соединения при помощи функции
  <strong>socket_listen()</strong>, эта функция будет принимать входящие соединения на этом сокете. Как только
  произошло удачное соединение, возвращается экземпляр <class>Socket</class>, который может быть использован для
  связи. Если в очереди сокета есть несколько соединений, будет использовано первое из них. Если нет
  ожидающих соединений, то функция <strong>socket_accept()</strong> будет блокировать выполнение скрипта до тех пор,
  пока не появится соединение. Если сокет <strong>$socket</strong> был сделан неблокирующим при помощи функции
  <strong>socket_set_blocking()</strong> или <strong>socket_set_nonblock()</strong>, будет возвращено <info>false</info>.
  
  Экземпляр <class>Socket</class>, полученный при помощи функции <strong>socket_accept()</strong> не может быть использован для
  принятия новых соединений. Однако изначальный слушающий сокет <strong>$socket</strong>, остаётся открытым и может
  быть использован повторно.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong>.

<comment>Return:</comment>
  <info>Socket|false</info>  В случае успешного выполнения возвращает экземпляр <class>Socket</class> или <info>false</info> в случае
                возникновения ошибки. Код ошибки может быть получен при помощи вызова функции
                <strong>socket_last_error()</strong>. Этот код ошибки может быть передан функции <strong>socket_strerror()</strong>
                для получения текстового описания ошибки.

<comment>See Also:</comment>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_strerror()</strong>


id: socket_addrinfo_bind
type: function
doc:
<comment>Description:</comment>
  Создать и привязать к сокету из указанного addrinfo
  
  Создать экземпляр <class>Socket</class> и привязать его с предоставленным <class>AddressInfo</class>. Возвращаемое значение этой
  функции может использоваться с <strong>socket_listen()</strong>.

<comment>Param:</comment>
  <info>AddressInfo</info>  <strong>$address</strong>  Экземпляр <class>AddressInfo</class>, созданный с помощью <strong>socket_addrinfo_lookup()</strong>.

<comment>Return:</comment>
  <info>Socket|false</info>  Возвращает экземпляр <class>Socket</class> в случае успешного выполнения или <info>false</info> в случае
                возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_addrinfo_connect()</strong>
   * <strong>socket_addrinfo_explain()</strong>
   * <strong>socket_addrinfo_lookup()</strong>
   * <strong>socket_listen()</strong>


id: socket_addrinfo_connect
type: function
doc:
<comment>Description:</comment>
  Создать и подключиться к сокету из указанного addrinfo
  
  Создать экземпляр <class>Socket</class> и подключить его к предоставленному экземпляру <class>AddressInfo</class>. Возвращаемое
  значение этой функции может использоваться с остальными функциями сокета.

<comment>Param:</comment>
  <info>AddressInfo</info>  <strong>$address</strong>  Экземпляр <class>AddressInfo</class>, созданный с помощью <strong>socket_addrinfo_lookup()</strong>

<comment>Return:</comment>
  <info>Socket|false</info>  Возвращает экземпляр <class>Socket</class> в случае успешного выполнения или <info>false</info> в случае
                возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_addrinfo_bind()</strong>
   * <strong>socket_addrinfo_explain()</strong>
   * <strong>socket_addrinfo_lookup()</strong>


id: socket_addrinfo_explain
type: function
doc:
<comment>Description:</comment>
  Получить информацию о addrinfo
  
  Функция <strong>socket_addrinfo_explain()</strong> предоставляет доступ к базовой структуре <return>addrinfo</return>.

<comment>Param:</comment>
  <info>AddressInfo</info>  <strong>$address</strong>  Экземпляр <class>AddressInfo</class>, созданный с помощью <strong>socket_addrinfo_lookup()</strong>

<comment>Return:</comment>
  <info>array</info>  Возвращает массив, содержащий поля в структуре <return>addrinfo</return>.

<comment>See Also:</comment>
   * <strong>socket_addrinfo_bind()</strong>
   * <strong>socket_addrinfo_connect()</strong>
   * <strong>socket_addrinfo_lookup()</strong>


id: socket_addrinfo_lookup
type: function
doc:
<comment>Description:</comment>
  Получить массив с содержимым getaddrinfo про указанное имя хоста
  
  Поиск различных способов подключения к хосту (<strong>$host</strong>). Возвращаемый массив содержит набор
  экземпляров <class>AddressInfo</class>, которые можно привязать с помощью <strong>socket_addrinfo_bind()</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$host</strong>     Имя хоста для поиска.
  <info>string|null</info>  <strong>$service</strong>  Сервис для подключения. Если значение является числовой строкой, оно
                         обозначает порт. В противном случае - это имя сетевой службы, которое
                         сопоставляется с портом операционной системы.
  <info>array</info>        <strong>$hints</strong>    Подсказки предоставляют критерии выбора возвращаемых адресов. Вы можете
                         указать подсказки, как определено getaddrinfo.

<comment>Return:</comment>
  <info>array|false</info>  Возвращает массив экземпляров <class>AddressInfo</class>, которые можно использовать с другими
               функциями socket_addrinfo. В случае возникновения ошибки возвращает <info>false</info>.

<comment>See Also:</comment>
   * <strong>socket_addrinfo_bind()</strong>
   * <strong>socket_addrinfo_connect()</strong>
   * <strong>socket_addrinfo_explain()</strong>


id: socket_atmark
type: function
doc:
<comment>Description:</comment>
  Determines whether socket is at out-of-band mark
  
  Determines whether <strong>$socket</strong> is at out-of-band mark.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_connect()</strong>
   * <strong>socket_create()</strong>


id: socket_bind
type: function
doc:
<comment>Description:</comment>
  Привязывает имя к сокету
  
  Привязывает имя, указанное в параметре <strong>$address</strong>, к сокету, описанному в параметре <strong>$socket</strong>. Это
  должно быть сделано до того, как соединение установлено при помощи функции <strong>socket_connect()</strong> или
  <strong>socket_listen()</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong>.
  <info>string</info>  <strong>$address</strong>  Если сокет из семейства <info>AF_INET</info>, то параметр <strong>$address</strong> должен быть IP-адресом в
                    записи, разделённой точками (например, <return>127.0.0.1</return>).
                    
                    Если сокет из семейства <info>AF_UNIX</info>, то параметр <strong>$address</strong> - это путь к доменному
                    сокету Unix (например, /tmp/my.sock).
  <info>int</info>     <strong>$port</strong>     Параметр <strong>$port</strong> используется, только когда имя привязывается к сокету <info>AF_INET</info>, и
                    указывает порт, на котором будут слушаться соединения.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.
        
        Код ошибки может быть получен при помощи функции <strong>socket_last_error()</strong>. Этот код может быть
        передан функции <strong>socket_strerror()</strong> для получения текстового описания ошибки.

<comment>See Also:</comment>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_clear_error
type: function
doc:
<comment>Description:</comment>
  Очищает ошибку на сокете или последний код ошибки
  
  Эта функция очищает код ошибки на указанном сокете или последнюю глобальную ошибку сокета, если
  сокет не указан.
  
  Эта функция позволяет принудительно сбросить значение кода ошибки для сокета или последний
  глобальный код ошибки модуля. Это может быть полезно для определения внутри части приложения,
  произошла ошибка или нет.

<comment>Param:</comment>
  <info>Socket|null</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong>.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.

<comment>See Also:</comment>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_close
type: function
doc:
<comment>Description:</comment>
  Закрывает экземпляр Socket
  
  Функция <strong>socket_close()</strong> закрывает экземпляр <class>Socket</class>, указанный параметром <strong>$socket</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функций <strong>socket_create()</strong> или
                   <strong>socket_accept()</strong>.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.

<comment>See Also:</comment>
   * <strong>socket_bind()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_strerror()</strong>


id: socket_cmsg_space
type: function
doc:
<comment>Description:</comment>
  Вычислить размер буфера сообщения
  
  Вычисляет размер буфера, который должен быть выделен для получения вспомогательных данных.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>int</info>  <strong>$level</strong>  
  <info>int</info>  <strong>$type</strong>   

<comment>Return:</comment>
  <info>int|null</info>  

<comment>See Also:</comment>
   * <strong>socket_recvmsg()</strong>
   * <strong>socket_sendmsg()</strong>


id: socket_connect
type: function
doc:
<comment>Description:</comment>
  Начинает соединение с сокетом
  
  Инициализирует соединение с адресом <strong>$address</strong>, используя экземпляр <class>Socket</class> <strong>$socket</strong>, который должен
  быть экземпляром <class>Socket</class>, созданным при помощи функции <strong>socket_create()</strong>.

<comment>Param:</comment>
  <info>Socket</info>    <strong>$socket</strong>   Экземпляр <class>Socket</class>, созданный с помощью <strong>socket_create()</strong>.
  <info>string</info>    <strong>$address</strong>  Параметр <strong>$address</strong> может быть IPv4-адресом в записи, разделённой точками
                      (например, <return>127.0.0.1</return>), если параметр <strong>$socket</strong> равен <info>AF_INET</info>, правильный
                      IPv6-адрес (например, <return>::1</return>), если включена поддержка IPv6 и параметр <strong>$socket</strong>
                      равен <info>AF_INET6</info> или путь к файлу доменного сокета Unix, если используется
                      семейство сокетов <info>AF_UNIX</info>.
  <info>int|null</info>  <strong>$port</strong>     Параметр <strong>$port</strong> используется и обязателен только в том случае, если происходит
                      соединение с сокетом <info>AF_INET</info> или <info>AF_INET6</info>, и он указывает порт на удалённом
                      хосте, к которому должно быть создано соединение.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки. Код
        ошибки может быть получен при помощи функции <strong>socket_last_error()</strong>. Этот код может быть затем
        передан функции <strong>socket_strerror()</strong> для получения текстового описания ошибки.
        
        Если сокет неблокирующий, то эта функция возвращает <info>false</info> с ошибкой <return>Operation now in
        progress</return>.

<comment>See Also:</comment>
   * <strong>socket_bind()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_create
type: function
doc:
<comment>Description:</comment>
  Создаёт сокет (конечную точку для обмена информацией)
  
  Создаёт и возвращает экземпляр <class>Socket</class>, также называемый как конечная точка обмена информацией.
  Типичное сетевое соединение состоит из двух сокетов, один из которых выполняет роль клиента, а
  другой выполняет роль сервера.

<comment>Param:</comment>
  <info>int</info>  <strong>$domain</strong>    Параметр  <strong>$domain</strong> определяет семейство протоколов, используемых сокетами.
  <info>int</info>  <strong>$type</strong>      Параметр <strong>$type</strong> определяет тип обмена данными, который будет использоваться
                  сокетом.
  <info>int</info>  <strong>$protocol</strong>  Параметр <strong>$protocol</strong> указывает конкретный протокол в заданном семействе протоколов
                  <strong>$domain</strong>, который будет использоваться в обмене данными с созданным сокетом.
                  Соответствующее значение может быть получено по имени при помощи функции
                  <strong>getprotobyname()</strong>. Если желаемый протокол TCP или UDP, то соответствующие константы
                  <info>SOL_TCP</info> и <info>SOL_UDP</info> также могут быть использованы.

<comment>Return:</comment>
  <info>Socket|false</info>  Функция <strong>socket_create()</strong> возвращает экземпляр <class>Socket</class> в случае успешного выполнения,
                или <info>false</info> в случае возникновения ошибки. Код ошибки может быть получен при помощи
                вызова функции <strong>socket_last_error()</strong>. Эта ошибка может быть передана функции
                <strong>socket_strerror()</strong> для получения текстового описания ошибки.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_create_listen
type: function
doc:
<comment>Description:</comment>
  Открывает сокет на указанном порту для принятия соединений
  
  <strong>socket_create_listen()</strong> создаёт новый экземпляр <class>Socket</class> типа <info>AF_INET</info>, слушающий на всех локальных
  интерфейсах указанный порт в ожидании новых соединений.
  
  Эта функция предназначена для упрощения задачи создания нового сокета, который только слушает порт
  для получения новых соединений.

<comment>Param:</comment>
  <info>int</info>  <strong>$port</strong>     Порт, который нужно слушать на всех интерфейсах.
  <info>int</info>  <strong>$backlog</strong>  Параметр <strong>$backlog</strong> определяет максимальную длину, до которой может вырасти очередь
                 ожидающих соединений. <info>SOMAXCONN</info> может быть передан как параметр <strong>$backlog</strong>, смотрите
                 <strong>socket_listen()</strong> для более полной информации.

<comment>Return:</comment>
  <info>Socket|false</info>  <strong>socket_create_listen()</strong> возвращает новый экземпляр <class>Socket</class> в случае успешного
                выполнения или <info>false</info> в случае возникновения ошибки. Код ошибки может быть получен
                при помощи функции <strong>socket_last_error()</strong>. Этот код может быть передан функции
                <strong>socket_strerror()</strong> для получения текстового описания ошибки.

<comment>See Also:</comment>
   * <strong>socket_create()</strong>
   * <strong>socket_create_pair()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_create_pair
type: function
doc:
<comment>Description:</comment>
  Создаёт пару неразличимых сокетов и сохраняет их в массиве
  
  <strong>socket_create_pair()</strong> создаёт два соединённых и неразличимых сокета, и сохраняет их в массиве
  <strong>$pair</strong>. Эта функция обычно используется IPC (межпроцессном взаимодействии).

<comment>Param:</comment>
  <info>int</info>    <strong>$domain</strong>    Параметр <strong>$domain</strong> определяет семейство протоколов, которое будет использоваться
                    сокетом. Смотрите их полный список в описании функции <strong>socket_create()</strong>.
  <info>int</info>    <strong>$type</strong>      Параметр <strong>$type</strong> указывает тип коммуникации, которая будет использоваться сокетом.
                    Смотрите их полный список в описании функции <strong>socket_create()</strong>.
  <info>int</info>    <strong>$protocol</strong>  Параметр <strong>$protocol</strong> устанавливает определённый протокол в указанном семействе
                    протоколов <strong>$domain</strong>, который будет использоваться при связи с полученными
                    сокетами. Соответствующее значение может быть получено по имени при помощи
                    функции <strong>getprotobyname()</strong>. Если требуемый протокол TCP или UDP, то
                    соответствующие константы <info>SOL_TCP</info> и <info>SOL_UDP</info> также могут быть использованы.
                    
                    Смотрите полный список поддерживаемых протоколов в описании функции
                    <strong>socket_create()</strong>.
  <info>array</info>  <strong>$pair</strong>      Ссылка на массив, в который будут вставлены два экземпляра <class>Socket</class>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_create()</strong>
   * <strong>socket_create_listen()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_export_stream
type: function
doc:
<comment>Description:</comment>
  Экспортировать сокет в поток, инкапсулирующий сокет
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  

<comment>Return:</comment>
  <info>resource|false</info>  Возвращает ресурс или <info>false</info> в случае возникновения ошибки.


id: socket_get_option
type: function
doc:
<comment>Description:</comment>
  Получает опции потока для сокета
  
  Функция <strong>socket_get_option()</strong> извлекает значение для опции, указанной параметром <strong>$option</strong> для
  заданного <strong>$socket</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный с помощью <strong>socket_create()</strong> или <strong>socket_accept()</strong>.
  <info>int</info>     <strong>$level</strong>   Параметр <strong>$level</strong> указывает уровень протокола, на котором находится опция.
                   Например, для получения опций на уровне сокета, должен использовать параметр
                   <strong>$level</strong>, равный <info>SOL_SOCKET</info>. Другие уровни, такие как <info>TCP</info>, можно использовать,
                   указав номер протокола этого уровня. Номера протоколов можно найти с помощью
                   функции <strong>getprotobyname()</strong>.
  <info>int</info>     <strong>$option</strong>  Сообщает, будет ли <strong>$socket</strong> останавливаться на <strong>socket_close()</strong>, если данные
                   присутствуют. По умолчанию, когда сокет закрыт, он попытается отправить все
                   неотправленные данные. В случае сокета, ориентированного на подключение,
                   <strong>socket_close()</strong> будет ожидать, пока его одноранговый узел подтвердит данные.
                   
                   Если l_onoff отличен от нуля, а l_linger равно нулю, все неотправленные данные
                   будут отброшены и RST (сброс) отправлен одноранговому узлу в случае сокета,
                   ориентированного на подключение.
                   
                   С другой стороны, если l_onoff и l_linger отличны от нуля, <strong>socket_close()</strong> будет
                   блокироваться до тех пор, пока все данные не будут отправлены или если время,
                   указанное в l_linger, не истечёт. Если сокет не блокируется, <strong>socket_close()</strong>
                   потерпит неудачу и вернёт ошибку.

<comment>Return:</comment>
  <info>array|int|false</info>  Возвращает значение заданной опции или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_create_listen()</strong>
   * <strong>socket_set_option()</strong>


id: socket_get_status
type: function
doc:
<comment>Description:</comment>
  Псевдоним stream_get_meta_data
  
  Функция является псевдонимом:  <strong>stream_get_meta_data()</strong>.


id: socket_getopt
type: function
doc:
<comment>Description:</comment>
  Псевдоним socket_get_option
  
  Функция является псевдонимом:  <strong>socket_get_option()</strong>.


id: socket_getpeername
type: function
doc:
<comment>Description:</comment>
  Запрашивает удалённую сторону указанного сокета, в результате может быть
     возвращён хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
  
  Запрашивает удалённую сторону указанного сокета, в результате может быть возвращён хост/порт или
  путь в файловой системе Unix, в зависимости от типа сокета.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong> или
                    <strong>socket_accept()</strong>.
  <info>string</info>  <strong>$address</strong>  Если заданный сокет имеет тип <info>AF_INET</info> или <info>AF_INET6</info>, <strong>socket_getpeername()</strong> вернёт
                    удалённый IP-адрес в соответствующем формате ( например, <return>127.0.0.1</return> или <return>fe80::1</return>)
                    в параметре <strong>$address</strong> и, если необязательный параметр <strong>$port</strong> присутствует, также
                    связанный порт.
                    
                    Если заданный сокет имеет тип <info>AF_UNIX</info>, <strong>socket_getpeername()</strong> вернёт путь в
                    файловой системе Unix (т.е. <return>/var/run/daemon.sock</return>) в параметр <strong>$address</strong>.
  <info>int</info>     <strong>$port</strong>     Если указан, то будет содержать порт, связанный с адресом <strong>$address</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.
        <strong>socket_getpeername()</strong> также может вернуть <info>false</info>, если сокет иметь тип отличный от <info>AF_INET</info>,
        <info>AF_INET6</info> или <info>AF_UNIX</info>, в этом случае код последней ошибки сокета НЕ будет обновлён.

<comment>See Also:</comment>
   * <strong>socket_getsockname()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_getsockname
type: function
doc:
<comment>Description:</comment>
  Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в
  файловой системе Unix, в зависимости от типа сокета
  
  Функция <strong>socket_getsockname()</strong> не должна использоваться с сокетами <info>AF_UNIX</info>, созданными при помощи
  функции <strong>socket_connect()</strong>. Только сокеты, созданные функцией <strong>socket_accept()</strong> и первичные серверные
  сокеты после вызова <strong>socket_bind()</strong>, позволяют получить осмысленный ответ при вызове этой функции.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   Экземпляр <class>Socket</class>, созданный функцией <strong>socket_create()</strong> или <strong>socket_accept()</strong>.
  <info>string</info>  <strong>$address</strong>  Если заданный сокет имеет тип <info>AF_INET</info> или <info>AF_INET6</info>, <strong>socket_getpeername()</strong> вернёт
                    локальный IP-адрес в соответствующем формате ( например, <return>127.0.0.1</return> или <return>fe80::1</return>)
                    в параметре <strong>$address</strong> и, если необязательный параметр <strong>$port</strong> присутствует, также
                    связанный порт.
                    
                    Если заданный сокет имеет тип <info>AF_UNIX</info>, <strong>socket_getpeername()</strong> вернёт путь в
                    файловой системе Unix (т.е. <return>/var/run/daemon.sock</return>) в параметр <strong>$address</strong>.
  <info>int</info>     <strong>$port</strong>     Если указан, то будет содержать соответствующий порт.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.
        <strong>socket_getsockname()</strong> может также возвращать <info>false</info>, если тип сокета не является одним из
        <info>AF_INET</info>, <info>AF_INET6</info>, или <info>AF_UNIX</info>, в этом случае код последней ошибки сокета не обновляется.

<comment>See Also:</comment>
   * <strong>socket_getpeername()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_import_stream
type: function
doc:
<comment>Description:</comment>
  Импортировать поток
  
  Импортирует поток, который инкапсулирует сокет в ресурс модуля сокета.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  Ресурс поток для импорта.

<comment>Return:</comment>
  <info>Socket|false</info>  Возвращает <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>stream_socket_server()</strong>


id: socket_last_error
type: function
doc:
<comment>Description:</comment>
  Возвращает последнюю ошибку на сокете
  
  Если экземпляр <class>Socket</class> передан этой функции, то возвращается последняя ошибка, которая произошла на
  этом конкретном сокете. Если <strong>$socket</strong> не указан, возвращается код ошибки последней неудавшейся
  функции сокетов. Последнее особенно полезно для таких функций, как <strong>socket_create()</strong>, которая не
  возвращает сокет в случае неудачи и  <strong>socket_select()</strong>, которая может закончиться неудачно по
  причинам, не связанным непосредственно с каким-либо конкретным сокетом. Код ошибки подходит для
  передачи функции <strong>socket_strerror()</strong>, которая возвращает строку, описывающую указанный код ошибки.
  
  Если ошибок нет или они были очищены функцией <strong>socket_clear_error()</strong>, функция вернёт <return>0</return>.

<comment>Param:</comment>
  <info>Socket|null</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong>.

<comment>Return:</comment>
  <info>int</info>  Эта функция возвращает код ошибки сокета.


id: socket_listen
type: function
doc:
<comment>Description:</comment>
  Прослушивает входящие соединения на сокете
  
  После того, как сокет <strong>$socket</strong> был создан при помощи функции <strong>socket_create()</strong> и привязан к имени при
  помощи функции <strong>socket_bind()</strong>, ему можно указать слушать входящие соединения на сокете <strong>$socket</strong>.
  
  Функция <strong>socket_listen()</strong> применима только к сокетам типа <info>SOCK_STREAM</info> или <info>SOCK_SEQPACKET</info>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   Экземпляр <class>Socket</class>, созданный при помощи функций <strong>socket_create()</strong> или
                    <strong>socket_addrinfo_bind()</strong>.
  <info>int</info>     <strong>$backlog</strong>  Максимум <strong>$backlog</strong> входящих соединений будет помещено в очередь на обработку.
                    Если запрос на соединение придёт, когда очередь заполнена, клиент может получить
                    ошибку <return>ECONNREFUSED</return>, или, если базовый протокол позволяет повторную передачу,
                    запрос будет повторён.
                    
                    Максимальное значение параметра <strong>$backlog</strong> очень сильно зависит используемой
                    платформы. В Linux очень большое значение будет молча обрезано до <info>SOMAXCONN</info>. В
                    win32, если передано <info>SOMAXCONN</info>, базовый провайдер сервиса, ответственного за
                    сокет, установит этот параметр максимальным разумным значением. Нет стандартного
                    способа узнать актуальное значение "backlog" для этой платформы.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки. Код
        ошибки может быть получен при помощи функции <strong>socket_last_error()</strong>. Этот код может быть
        передан функции <strong>socket_strerror()</strong> для получения текстового описания ошибки.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_create()</strong>
   * <strong>socket_strerror()</strong>
   * <strong>socket_addrinfo_bind()</strong>


id: socket_read
type: function
doc:
<comment>Description:</comment>
  Читает строку максимальную длину байт из сокета
  
  Функция <strong>socket_read()</strong> читает данные из экземпляра <class>Socket</class> <strong>$socket</strong>, созданного при помощи функций
  <strong>socket_create()</strong> или <strong>socket_accept()</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функций <strong>socket_create()</strong> или
                   <strong>socket_accept()</strong>.
  <info>int</info>     <strong>$length</strong>  Максимальное количество байт для чтения определено параметром <strong>$length</strong>. Как
                   вариант вы можете использовать <info>\r</info>, <info>\n</info>, или <info>\0</info> для окончания чтения (в зависимости
                   от параметра <strong>$mode</strong>, смотрите ниже).
  <info>int</info>     <strong>$mode</strong>    Необязательный параметр <strong>$mode</strong> - это именованная константа: <info>PHP_BINARY_READ</info> (По
                   умолчанию) - используется системная функция <return>recv()</return>. Безопасно для чтения бинарных
                   данных. <info>PHP_NORMAL_READ</info> - чтение останавливается на <return>\n</return> или <return>\r</return>.
                   
                   <info>PHP_BINARY_READ</info> (По умолчанию) - используется системная функция <return>recv()</return>. Безопасно
                   для чтения бинарных данных.
                   
                   <info>PHP_NORMAL_READ</info> - чтение останавливается на <return>\n</return> или <return>\r</return>.

<comment>Return:</comment>
  <info>string|false</info>  <strong>socket_read()</strong> возвращает данные в виде строки в случае успешного выполнения, или
                <info>false</info> в случае возникновения ошибки (включая случай, когда удалённый хост закрыл
                соединение). Код ошибки может быть получен при помощи функции <strong>socket_last_error()</strong>.
                Этот код может быть передан функции <strong>socket_strerror()</strong> для получения текстового
                описания ошибки.
                
                <strong>socket_read()</strong> возвращает строку нулевой длины (""), когда больше нет данных для
                чтения.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>
   * <strong>socket_write()</strong>


id: socket_recv
type: function
doc:
<comment>Description:</comment>
  Получает данные из подсоединённого сокета
  
  Функция <strong>socket_recv()</strong> получает <strong>$length</strong> байт данных в буфер  <strong>$data</strong> из сокета <strong>$socket</strong>. функция
  <strong>socket_recv()</strong> может быть использована для получения данных из подсоединённых сокетов.
  Дополнительно к этому, один или более флагов могут быть указаны для изменения поведения функции.
  
  Параметр <strong>$data</strong> передаётся по ссылке, так что он должен быть указан в виде переменной в списке
  аргументов. Данные, прочитанные из сокета <strong>$socket</strong> функцией <strong>socket_recv()</strong>, будут возвращены в
  параметре <strong>$data</strong>.

<comment>Param:</comment>
  <info>Socket</info>       <strong>$socket</strong>  Параметр <strong>$socket</strong> должен быть экземпляром <class>Socket</class>, предварительно созданным
                        при помощи функции socket_create().
  <info>string|null</info>  <strong>$data</strong>    Полученные данные будут переданы в переменную, указанную в параметре <strong>$data</strong>.
                        Если происходит ошибка, если соединение сброшено, или если данные
                        недоступны, параметр <strong>$data</strong> будет установлен в <info>null</info>.
  <info>int</info>          <strong>$length</strong>  До <strong>$length</strong> байт будет получено с удалённого хоста.
  <info>int</info>          <strong>$flags</strong>   Значение параметра <strong>$flags</strong> может быть любой комбинацией следующих флагов,
                        соединённых при помощи двоичного оператора OR (<return>|</return>).

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_recv()</strong> возвращает количество полученных байтов или <info>false</info> в случае возникновения
             ошибки. Фактический код ошибки может быть получен при помощи функции
             <strong>socket_last_error()</strong>. Этот код ошибки может быть передан функции <strong>socket_strerror()</strong> для
             получения текстового описания ошибки.


id: socket_recvfrom
type: function
doc:
<comment>Description:</comment>
  Получает данные из сокета, независимо от того, подсоединён он или нет
  
  Функция <strong>socket_recvfrom()</strong> получает <strong>$length</strong> байт данных в <strong>$data</strong> из адреса <strong>$address</strong> на порту <strong>$port</strong>
  (если сокет не типа <info>AF_UNIX</info>) используя сокет <strong>$socket</strong>. Функция <strong>socket_recvfrom()</strong> может быть
  использована для извлечения данных как из подключённых, так и из не подключённых сокетов.
  Дополнительно, один или более флагов могут быть указаны для того, чтобы изменить поведение
  функции.
  
  Параметры <strong>$address</strong> и <strong>$port</strong> должны быть переданы по ссылке. Если сокет не ориентирован на
  соединение, <strong>$address</strong> должен быть установлен как адрес интернет-протокола  удалённого хоста, либо
  как путь к сокету UNIX. Если сокет не ориентирован на соединение, <strong>$address</strong> должен быть <info>null</info>.
  Дополнительно, <strong>$port</strong> должен содержать порт удалённого хоста для не подключённых сокетов типа
  <info>AF_INET</info> и <info>AF_INET6</info>.
  
  Эта функция безопасна для обработки данных в двоичной форме.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   Параметр <strong>$socket</strong> должен быть экземпляром <class>Socket</class>, предварительно созданным при
                    помощи функции socket_create().
  <info>string</info>  <strong>$data</strong>     Полученные данные будут переданы в переменную, указанную при помощи параметра
                    <strong>$data</strong>.
  <info>int</info>     <strong>$length</strong>   С удалённого хоста будет получено до <strong>$length</strong> байт.
  <info>int</info>     <strong>$flags</strong>    Значение параметра <strong>$flags</strong> может быть любой комбинацией следующих флагов,
                    объединённых при помощи двоичного оператора OR (<return>|</return>) operator.
  <info>string</info>  <strong>$address</strong>  Если сокет типа <info>AF_UNIX</info>, <strong>$address</strong> - это путь к файлу. В ином случае, для
                    неподсоединённых сокетов, параметр <strong>$address</strong> - это IP-адрес, удалённого хоста,
                    или <info>null</info>, если сокет ориентирован по соединение.
  <info>int</info>     <strong>$port</strong>     Этот аргумент применим только к сокетам <info>AF_INET</info> и <info>AF_INET6</info>, и указывает
                    удалённый порт, из которого будут получены данные. Если сокет ориентирован по
                    соединение, <strong>$port</strong> будет <info>null</info>.

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_recvfrom()</strong> возвращает количество полученных байт или <info>false</info>, если произошла
             ошибка. Фактический код ошибки может быть получен при помощи вызова функции
             <strong>socket_last_error()</strong>. Этот код ошибки может быть передан функции <strong>socket_strerror()</strong> для
             получения текстового описания ошибки.

<comment>See Also:</comment>
   * <strong>socket_recv()</strong>
   * <strong>socket_send()</strong>
   * <strong>socket_sendto()</strong>
   * <strong>socket_create()</strong>


id: socket_recvmsg
type: function
doc:
<comment>Description:</comment>
  Прочитать сообщение
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   
  <info>array</info>   <strong>$message</strong>  
  <info>int</info>     <strong>$flags</strong>    

<comment>Return:</comment>
  <info>int|false</info>  

<comment>See Also:</comment>
   * <strong>socket_sendmsg()</strong>
   * <strong>socket_cmsg_space()</strong>


id: socket_select
type: function
doc:
<comment>Description:</comment>
  Запускает системный вызов select() для заданных массивов сокетов с указанным временем ожидания
  
  <strong>socket_select()</strong> принимает массивы сокетов и ждёт их изменения статуса. Те, кто знаком с сокетами
  BSD, обнаружат, что массивы сокетов на самом деле являются так называемыми наборами дескрипторов
  файлов. Наблюдаются три независимых массива ресурсов сокетов.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$read</strong>          Сокеты, перечисленные в массиве <strong>$read</strong> будут наблюдаться для просмотра,
                             есть ли доступные символы для чтения ( точнее, чтобы видеть, не будет
                             ли чтение блокироваться, в частности, сокет уже достиг конца файла, и в
                             этом случае <strong>socket_read()</strong> вернёт строку с нулевой длиной).
  <info>array|null</info>  <strong>$write</strong>         Сокеты, перечисленные в массиве <strong>$write</strong> будут наблюдаться для просмотра,
                             не будет ли запись блокироваться.
  <info>array|null</info>  <strong>$except</strong>        Сокеты, перечисленные в массиве <strong>$except</strong> будут наблюдаться для
                             исключений.
  <info>int|null</info>    <strong>$seconds</strong>       <strong>$seconds</strong> и <strong>$microseconds</strong> вместе образуют параметр <return>timeout</return>. Параметр
                             <return>timeout</return> - максимальный промежуток времени до возврата <strong>socket_select()</strong>.
                             <strong>$seconds</strong> может быть нулём, заставляя <strong>socket_select()</strong> к немедленному
                             возврату. Это полезно для опроса. Если <strong>$seconds</strong> равен <info>null</info> (нет времени
                             ожидания), <strong>socket_select()</strong> может блокироваться бесконечно.
  <info>int</info>         <strong>$microseconds</strong>  

<comment>Return:</comment>
  <info>int|false</info>  В случае успешного выполнения <strong>socket_select()</strong> возвращает количество сокетов,
             содержащихся в изменённых массивах, которое может быть равно нулю, если время ожидания
             истечёт до того, как произойдёт что-то интересное. В случае возникновения ошибки
             возвращается <info>false</info>. Код ошибки может быть получен с помощью <strong>socket_last_error()</strong>.
             
             Обязательно используйте оператор <return>===</return> при проверке на ошибку. Поскольку <strong>socket_select()</strong>
             может возвращать 0, сравнение с <return>==</return> будет оцениваться как <info>true</info>: Анализ результата
             <strong>socket_select()</strong>
             ]]>

<comment>See Also:</comment>
   * <strong>socket_read()</strong>
   * <strong>socket_write()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_send
type: function
doc:
<comment>Description:</comment>
  Отправляет данные в подсоединённый сокет
  
  Функция <strong>socket_send()</strong> отправляет <strong>$length</strong> байт в сокет <strong>$socket</strong> из буфера <strong>$data</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong> или
                   <strong>socket_accept()</strong>.
  <info>string</info>  <strong>$data</strong>    Буфер, содержащий данные, которые будут отправлены на удалённый хост.
  <info>int</info>     <strong>$length</strong>  Число байт, которое будет отправлено на удалённый хост из буфера <strong>$data</strong>.
  <info>int</info>     <strong>$flags</strong>   Значение параметра <strong>$flags</strong> может быть любой комбинацией следующих флагов,
                   соединённых при помощи двоичного оператора OR (<return>|</return>). Возможные значения для
                   параметра <strong>$flags</strong><info>MSG_OOB</info> Отправить данные OOB (out-of-band, внеполосные). <info>MSG_EOR</info>
                   Указывает на метку записи. Отправляемые данные завершают запись. <info>MSG_EOF</info>
                   Закрывает отправляющую сторону сокета и добавляет соответствующее оповещение об
                   этом на конце отправляемых данных. Отправляемые данные завершают транзакцию.
                   <info>MSG_DONTROUTE</info> Не использовать роутинг, использовать прямой интерфейс.

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_send()</strong> возвращает количество отправленных байтов или <info>false</info> в случае
             возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_sendto()</strong>


id: socket_sendmsg
type: function
doc:
<comment>Description:</comment>
  Отправить сообщение
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   
  <info>array</info>   <strong>$message</strong>  
  <info>int</info>     <strong>$flags</strong>    

<comment>Return:</comment>
  <info>int|false</info>  Возвращает количество отправленных байтов или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_recvmsg()</strong>
   * <strong>socket_cmsg_space()</strong>


id: socket_sendto
type: function
doc:
<comment>Description:</comment>
  Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  
  Функция <strong>socket_sendto()</strong> отправляет <strong>$length</strong> байт из буфера <strong>$buf</strong> через сокет <strong>$socket</strong> к порту <strong>$port</strong>
  на адресе <strong>$address</strong>.

<comment>Param:</comment>
  <info>Socket</info>    <strong>$socket</strong>   Экземпляр <class>Socket</class>, созданный при помощи <strong>socket_create()</strong>.
  <info>string</info>    <strong>$data</strong>     Отправляемые данные будут взяты из буфера <strong>$data</strong>.
  <info>int</info>       <strong>$length</strong>   <strong>$length</strong> байт из буфера <strong>$data</strong> будет отправлено.
  <info>int</info>       <strong>$flags</strong>    Значение параметра <strong>$flags</strong> может быть любой комбинацией следующих флагов,
                      соединённых при помощи двоичного оператора OR (<return>|</return>). Возможные значения флагов
                      <strong>$flags</strong><info>MSG_OOB</info> Отправить данные OOB (out-of-band, внеполосные). <info>MSG_EOR</info>
                      Указывает на метку записи. Отправленные данные завершают запись. <info>MSG_EOF</info>
                      Закрывает отправляющую сторону сокета и добавляет соответствующее оповещение
                      об этом в конец отправляемых данных. Отправленные данные завершают транзакцию.
                      <info>MSG_DONTROUTE</info> Не использовать маршрутизацию, использовать прямой интерфейс.
  <info>string</info>    <strong>$address</strong>  IP-адрес удалённого хоста.
  <info>int|null</info>  <strong>$port</strong>     <strong>$port</strong> - это номер удалённого порта, по которому будут отправлены данные.

<comment>Return:</comment>
  <info>int|false</info>  Функция <strong>socket_sendto()</strong> возвращает количество байт, отправленных на удалённый хост, или
             <info>false</info>, если произошла ошибка.

<comment>See Also:</comment>
   * <strong>socket_send()</strong>


id: socket_set_block
type: function
doc:
<comment>Description:</comment>
  Устанавливает блокирующий режим на сокете
  
  Функция <strong>socket_set_block()</strong> убирает флаг <info>O_NONBLOCK</info> с сокета, указанного в параметре <strong>$socket</strong>.
  
  Когда операция (например, получение, отправка, соединение, принятие соединения, ...) выполняется
  на блокирующем сокете, скрипт будет приостанавливать своё выполнение до тех пор, пока он не
  получит сигнал или возможность выполнить операцию.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong> или
                   <strong>socket_accept()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_set_nonblock()</strong>
   * <strong>socket_set_option()</strong>


id: socket_set_blocking
type: function
doc:
<comment>Description:</comment>
  Псевдоним stream_set_blocking
  
  Функция является псевдонимом:  <strong>stream_set_blocking()</strong>.


id: socket_set_nonblock
type: function
doc:
<comment>Description:</comment>
  Устанавливает неблокирующий режим для файлового дескриптора fd 
  
  Функция <strong>socket_set_nonblock()</strong> устанавливает флаг <info>O_NONBLOCK</info> на сокете, указанном в параметре
  <strong>$socket</strong>.
  
  Когда операция (например, получение, отправка, соединение, принятие соединения, ...) выполняется
  на неблокирующем сокете, скрипт не будет приостанавливать своё исполнение до получения сигнала или
  возможности выполнить операцию. Если выполняемая операция должна привести к блокированию
  выполнения скрипта, то вместо этого вызываемая функция возвратит ошибку.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong> или
                   <strong>socket_accept()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_set_block()</strong>
   * <strong>socket_set_option()</strong>
   * <strong>stream_set_blocking()</strong>


id: socket_set_option
type: function
doc:
<comment>Description:</comment>
  Устанавливает опции для сокета
  
  Функция <strong>socket_set_option()</strong> устанавливает опцию указанную в параметре <strong>$option</strong>, на уровне протокола
  <strong>$level</strong>, в значение, указанное параметром <strong>$value</strong> для сокета <strong>$socket</strong>.

<comment>Param:</comment>
  <info>Socket</info>            <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong> или
                             <strong>socket_accept()</strong>.
  <info>int</info>               <strong>$level</strong>   Параметр <strong>$level</strong> указывает уровень протокола, на котором используется
                             опция. Например, чтобы установить опции на уровне сокета, параметр
                             <strong>$level</strong> должен быть установлен в <info>SOL_SOCKET</info>. Другие уровни, такие как
                             TCP, можно использовать, указав номер протокола этого уровня. Номер
                             протоколов можно найти с помощью функции <strong>getprotobyname()</strong>.
  <info>int</info>               <strong>$option</strong>  Возможные опции для сокета те же самые, как и для функции
                             <strong>socket_get_option()</strong>.
  <info>array|string|int</info>  <strong>$value</strong>   Значение опции.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_create()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_strerror()</strong>
   * <strong>socket_last_error()</strong>
   * <strong>socket_get_option()</strong>


id: socket_set_timeout
type: function
doc:
<comment>Description:</comment>
  Псевдоним stream_set_timeout
  
  Функция является псевдонимом:  <strong>stream_set_timeout()</strong>.


id: socket_setopt
type: function
doc:
<comment>Description:</comment>
  Псевдоним socket_set_option
  
  Функция является псевдонимом:  <strong>socket_set_option()</strong>.


id: socket_shutdown
type: function
doc:
<comment>Description:</comment>
  Завершает работу сокета на получение и/или отправку данных
  
  Функция  <strong>socket_shutdown()</strong> позволяет вам остановить передачу поступающих, исходящих или всех
  данных (по умолчанию) через сокет <strong>$socket</strong>
  
  Ассоциированный буфер, или буферы, могут быть освобождены, а могут и нет.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Экземпляр <class>Socket</class>, созданный при помощи функции <strong>socket_create()</strong>.
  <info>int</info>     <strong>$mode</strong>    Значение параметра <strong>$mode</strong> может быть одним из следующих: возможные значения для
                   параметра <strong>$mode</strong><return>0</return> Завершает чтение из сокета <return>1</return> Завершает запись в сокет <return>2</return>
                   Завершает чтение и запись в сокет

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: socket_strerror
type: function
doc:
<comment>Description:</comment>
  Возвращает строку, описывающую ошибку сокета
  
  <strong>socket_strerror()</strong> получает в качестве параметра <strong>$error_code</strong> код ошибки сокета, возвращаемый
  функцией <strong>socket_last_error()</strong> и возвращает соответствующий текст с разъяснением.
  
  Хотя сообщения об ошибках, создаваемые модулем socket, на английском языке, системные сообщения,
  получаемые этой функцией, будут появляться в зависимости от текущей локали (<info>LC_MESSAGES</info>).

<comment>Param:</comment>
  <info>int</info>  <strong>$error_code</strong>  Допустимый код ошибки сокета, скорее всего, возвращённый функцией
                    <strong>socket_last_error()</strong>.

<comment>Return:</comment>
  <info>string</info>  Возвращает сообщение об ошибке, связанное с параметром <strong>$error_code</strong>.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_create()</strong>


id: socket_write
type: function
doc:
<comment>Description:</comment>
  Запись в сокет
  
  Функция <strong>socket_write()</strong> записывает в сокет <strong>$socket</strong> данные из указанного буфера <strong>$data</strong>.

<comment>Param:</comment>
  <info>Socket</info>    <strong>$socket</strong>  
  <info>string</info>    <strong>$data</strong>    Буфер, который будет записан.
  <info>int|null</info>  <strong>$length</strong>  Необязательный параметр <strong>$length</strong> может указывать другое число байт, записываемых
                     в сокет. Если это число больше, чем длина буфера, оно будет молча урезано до
                     длины буфера.

<comment>Return:</comment>
  <info>int|false</info>  Возвращает количество байт, успешно записанных в сокет или <info>false</info> в случае возникновения
             ошибки. Код ошибки может быть получен при помощи функции <strong>socket_last_error()</strong>. Этот код
             может быть передан функции <strong>socket_strerror()</strong> для получения текстового описания ошибки.
             
             Совершенно нормально для функции <strong>socket_write()</strong> возвращать ноль, что означает, что ни
             одного байта не было записано. Пожалуйста, используйте оператор <return>===</return> для проверки
             значения на  <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_accept()</strong>
   * <strong>socket_bind()</strong>
   * <strong>socket_connect()</strong>
   * <strong>socket_listen()</strong>
   * <strong>socket_read()</strong>
   * <strong>socket_strerror()</strong>


id: socket_wsaprotocol_info_export
type: function
doc:
<comment>Description:</comment>
  Экспорт структуры WSAPROTOCOL_INFO
  
  Экспортирует структуру <return>WSAPROTOCOL_INFO</return> в разделяемую память и возвращает идентификатор, который
  можно использовать в <strong>socket_wsaprotocol_info_import()</strong>. Этот идентификатор пригоден только для
  использования в процессе с PID, указанным в <strong>$process_id</strong>.
  
  Функция доступна только в Windows.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>      Экземпляр <class>Socket</class>.
  <info>int</info>     <strong>$process_id</strong>  Идентификатор процесса, который будет импортировать сокет.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает идентификатор, который можно использовать для импорта или <info>false</info> в случае
                возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_wsaprotocol_info_import()</strong>
   * <strong>socket_wsaprotocol_info_release()</strong>


id: socket_wsaprotocol_info_import
type: function
doc:
<comment>Description:</comment>
  Импортирует сокет из другого процесса
  
  Импортирует сокет, который был экспортирован в другом процессе.
  
  Функция доступна только в Windows.

<comment>Param:</comment>
  <info>string</info>  <strong>$info_id</strong>  Идентификатор, полученный при вызове <strong>socket_wsaprotocol_info_export()</strong>.

<comment>Return:</comment>
  <info>Socket|false</info>  Возвращает экземпляр <class>Socket</class> в случае успешного выполнения или <info>false</info> в случае
                возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_wsaprotocol_info_export()</strong>


id: socket_wsaprotocol_info_release
type: function
doc:
<comment>Description:</comment>
  Высвобождает экспортированную структуру WSAPROTOCOL_INFO
  
  Высвобождает разделяемую память, соответствующую заданному <strong>$info_id</strong>.
  
  Функция доступна только в Windows.

<comment>Param:</comment>
  <info>string</info>  <strong>$info_id</strong>  Идентификатор, полученный при вызове <strong>socket_wsaprotocol_info_export()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.

<comment>See Also:</comment>
   * <strong>socket_wsaprotocol_info_export()</strong>


id: sodium_add
type: function
doc:
<comment>Description:</comment>
  Добавляет большие числа
  
  Добавляет параметр <strong>$string2</strong> к <strong>$string1</strong>, перезаписывая значение, хранящееся в <strong>$string1</strong>. Функция
  предполагает, что оба параметра являются двоичными строками, которые представляют целые числа без
  знака в обратном порядке байтов.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  Строка, представляющая целое число произвольной длины без знака в обратном
                    порядке байтов. Этот параметр передаётся по ссылке и будет содержать сумму двух
                    параметров.
  <info>string</info>  <strong>$string2</strong>  Строка, представляющая целое число произвольной длины без знака в обратном
                    порядке байтов.

<comment>Return:</comment>
  <info>void</info>  Функция не возвращает значения после выполнения.


id: sodium_base642bin
type: function
doc:
<comment>Description:</comment>
  Преобразует строку в кодировке base64 в необработанный двоичный файл
  
  Преобразует строку в кодировке base64 в необработанный двоичный файл. В отличие от
  <strong>base64_decode()</strong>, <strong>sodium_base642bin()</strong> является постоянным по времени (свойство, которое важно для
  любого кода, который касается криптографических входных данных, таких как простые тексты или
  ключи) и поддерживает несколько наборов символов.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Строка (<info>string</info>); Закодированная строка.
  <info>int</info>     <strong>$id</strong>      <info>SODIUM_BASE64_VARIANT_ORIGINAL</info> для стандартного (<return>A-Za-z0-9/\+</return>). Кодировка Base64.
                   <info>SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING</info> для стандартного (<return>A-Za-z0-9/\+</return>)
                   Кодировка Base64 без дополнительных символов <return>=</return>. <info>SODIUM_BASE64_VARIANT_URLSAFE</info> для
                   URL-безопасного (<return>A-Za-z0-9\-_</return>). Кодировка Base64.
                   <info>SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING</info> for URL-safe (<return>A-Za-z0-9\-_</return>). Кодировка
                   Base64 без дополнительных символов <return>=</return>.
  <info>string</info>  <strong>$ignore</strong>  Символы, которые следует игнорировать во время преобразования (например, символы
                   пробела).

<comment>Return:</comment>
  <info>string</info>  Преобразованная строка.


id: sodium_bin2base64
type: function
doc:
<comment>Description:</comment>
  Кодирует необработанную двоичную строку с помощью base64
  
  Преобразует необработанную двоичную строку в строку в кодировке base64. В отличие от
  <strong>base64_encode()</strong>, <strong>sodium_bin2base64()</strong> является постоянной по времени (свойство, которое важно для
  любого кода, который касается криптографических входных данных, таких как простые тексты или
  ключи), и поддерживает несколько наборов символов.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Необработанная двоичная строка.
  <info>int</info>     <strong>$id</strong>      <info>SODIUM_BASE64_VARIANT_ORIGINAL</info> для стандартного (<return>A-Za-z0-9/\+</return>) Кодировка Base64.
                   <info>SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING</info> for standard (<return>A-Za-z0-9/\+</return>) Кодировка
                   Base64 без дополнительных символов <return>=</return>. <info>SODIUM_BASE64_VARIANT_URLSAFE</info> для
                   URL-безопасного (<return>A-Za-z0-9\-_</return>) Кодировка Base64.
                   <info>SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING</info> для URL-безопасного (<return>A-Za-z0-9\-_</return>)
                   Кодировка Base64 без дополнительных символов <return>=</return>.

<comment>Return:</comment>
  <info>string</info>  Строка в кодировке Base64.


id: sodium_bin2hex
type: function
doc:
<comment>Description:</comment>
  Кодировать в шестнадцатеричное представление
  
  Преобразует необработанную двоичную строку в строку в шестнадцатеричной кодировке. В отличие от
  стандартной функции шестнадцатеричного кодирования, <strong>sodium_bin2hex()</strong> является постоянной по
  времени (свойство, которое важно для любого кода, который касается криптографических данных, таких
  как тексты или ключи).

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Необработанная двоичная строка.

<comment>Return:</comment>
  <info>string</info>  Строка в шестнадцатеричном коде.


id: sodium_compare
type: function
doc:
<comment>Description:</comment>
  Сравнить большие числа
  
  Сравнивает две строки, как если бы они были целыми числами произвольной длины без знака с прямым
  порядком байтов, без утечки из побочного канала.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  Левый операнд
  <info>string</info>  <strong>$string2</strong>  Правый операнд

<comment>Return:</comment>
  <info>int</info>  Возвращает <return>-1</return>, если <strong>$string1</strong> меньше <strong>$string2</strong>.
       
       Возвращает <return>1</return>, если <strong>$string1</strong> больше <strong>$string2</strong>.
       
       Возвращает <return>0</return>, если строки равны.


id: sodium_crypto_aead_aes256gcm_decrypt
type: function
doc:
<comment>Description:</comment>
  Проверяет и расшифровывает сообщение с помощью AES-256-GCM
  
  Проверяет и расшифровывает сообщение с помощью AES-256-GCM Доступно, только если
  <strong>sodium_crypto_aead_aes256gcm_is_available()</strong> возвращает <info>true</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Должен быть в формате, предоставленном
                            <strong>sodium_crypto_aead_aes256gcm_encrypt()</strong> (зашифрованный текст и тег,
                            объединённые).
  <info>string</info>  <strong>$additional_data</strong>  Дополнительные проверенные данные. Это используется при проверке тега
                            аутентификации, добавленного к зашифрованному тексту, но он не шифруется
                            и не сохраняется в зашифрованном тексте.
  <info>string</info>  <strong>$nonce</strong>            Номер, который необходимо использовать только один раз для каждого
                            сообщения. Длина 12 байт.
  <info>string</info>  <strong>$key</strong>              Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string|false</info>  В случае успешного выполнения возвращает текст или <info>false</info> в случае возникновения
                ошибки.


id: sodium_crypto_aead_aes256gcm_encrypt
type: function
doc:
<comment>Description:</comment>
  Шифрует, а затем проверяет подлинность с помощью AES-256-GCM
  
  Шифрует, а затем проверяет подлинность с помощью AES-256-GCM. Доступно, только если
  <strong>sodium_crypto_aead_aes256gcm_is_available()</strong> возвращает <info>true</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          Текстовое сообщение, которое нужно зашифровать.
  <info>string</info>  <strong>$additional_data</strong>  Дополнительные проверенные данные. Это используется при проверке тега
                            подлинности, добавленного к зашифрованному тексту, но он не шифруется и
                            не сохраняется в зашифрованном тексте.
  <info>string</info>  <strong>$nonce</strong>            Номер, который необходимо использовать только один раз для каждого
                            сообщения. Длина 12 байт.
  <info>string</info>  <strong>$key</strong>              Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string</info>  Возвращает зашифрованный текст и тег проверки подлинности в виде строки необработанных
          двоичных байтов. (Формат: зашифрованный текст, затем тег.)


id: sodium_crypto_aead_aes256gcm_is_available
type: function
doc:
<comment>Description:</comment>
  Проверить, поддерживает ли оборудование AES256-GCM
  
  Возвращаемое значение этой функции зависит от того, поддерживает ли оборудование аппаратное
  ускорение AES.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info>, если шифрование с помощью AES-256-GCM безопасно, в противном случае
        возвращает <info>false</info>.


id: sodium_crypto_aead_aes256gcm_keygen
type: function
doc:
<comment>Description:</comment>
  Создаёт случайный ключ AES-256-GCM
  
  Создаёт случайный ключ для использования в <strong>sodium_crypto_aead_aes256gcm_encrypt()</strong> и
  <strong>sodium_crypto_aead_aes256gcm_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Возвращает 256-битный случайный ключ.


id: sodium_crypto_aead_chacha20poly1305_decrypt
type: function
doc:
<comment>Description:</comment>
  Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305
  
  Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Должен быть в формате, предоставленном
                            <strong>sodium_crypto_aead_chacha20poly1305_encrypt()</strong> (зашифрованный текст и
                            тег, объединённые).
  <info>string</info>  <strong>$additional_data</strong>  Дополнительные проверенные данные. Это используется при проверке тега
                            подлинности, добавленного к зашифрованному тексту, но он не шифруется и
                            не сохраняется в зашифрованном тексте.
  <info>string</info>  <strong>$nonce</strong>            Номер, который необходимо использовать только один раз для каждого
                            сообщения. Длина 8 байт.
  <info>string</info>  <strong>$key</strong>              Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string|false</info>  В случае успешного выполнения возвращает текст или <info>false</info> в случае возникновения
                ошибки.


id: sodium_crypto_aead_chacha20poly1305_encrypt
type: function
doc:
<comment>Description:</comment>
  Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305
  
  Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          Текстовое сообщение, которое нужно зашифровать.
  <info>string</info>  <strong>$additional_data</strong>  Дополнительные проверенные данные. Это используется при проверке тега
                            подлинности, добавленного к зашифрованному тексту, но он не шифруется и
                            не сохраняется в зашифрованном тексте.
  <info>string</info>  <strong>$nonce</strong>            Номер, который необходимо использовать только один раз для каждого
                            сообщения. Длина 8 байт.
  <info>string</info>  <strong>$key</strong>              Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string</info>  В случае успешного выполнения возвращает зашифрованный текст и тег или <info>false</info> в случае
          возникновения ошибки.


id: sodium_crypto_aead_chacha20poly1305_ietf_decrypt
type: function
doc:
<comment>Description:</comment>
  Проверить, что зашифрованный текст содержит допустимый тег
  
  Проверяет, затем расшифровывает с помощью ChaCha20-Poly1305 (вариант IETF).
  
  Вариант IETF использует 96-битные одноразовые номера и 32-битные внутренние счётчики вместо
  64-битных и для того и для другого.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Должен быть в формате, предоставленном
                            <strong>sodium_crypto_aead_chacha20poly1305_ietf_encrypt()</strong> (зашифрованный текст
                            и тег, объединённые).
  <info>string</info>  <strong>$additional_data</strong>  Дополнительные проверенные данные. Это используется при проверке тега
                            подлинности, добавленного к зашифрованному тексту, но он не шифруется и
                            не сохраняется в зашифрованном тексте.
  <info>string</info>  <strong>$nonce</strong>            Номер, который необходимо использовать только один раз для каждого
                            сообщения. Длина 12 байт.
  <info>string</info>  <strong>$key</strong>              Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string|false</info>  В случае успешного выполнения возвращает текст или <info>false</info> в случае возникновения
                ошибки.


id: sodium_crypto_aead_chacha20poly1305_ietf_encrypt
type: function
doc:
<comment>Description:</comment>
  Зашифровать сообщение
  
  Шифрует, а затем проверяет подлинность с помощью ChaCha20-Poly1305 (вариант IETF).
  
  Вариант IETF использует 96-битные одноразовые номера и 32-битные внутренние счётчики вместо
  64-битных и для того и для другого.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          Текстовое сообщение, которое нужно зашифровать.
  <info>string</info>  <strong>$additional_data</strong>  Дополнительные проверенные данные. Это используется при проверке тега
                            подлинности, добавленного к зашифрованному тексту, но он не шифруется и
                            не сохраняется в зашифрованном тексте.
  <info>string</info>  <strong>$nonce</strong>            Номер, который необходимо использовать только один раз для каждого
                            сообщения. Длина 12 байт.
  <info>string</info>  <strong>$key</strong>              Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string</info>  В случае успешного выполнения возвращает зашифрованный текст и тег или <info>false</info> в случае
          возникновения ошибки.


id: sodium_crypto_aead_chacha20poly1305_ietf_keygen
type: function
doc:
<comment>Description:</comment>
  Создаёт случайный ключ ChaCha20-Poly1305 (IETF)
  
  Создаёт случайный ключ для использования в <strong>sodium_crypto_aead_chacha20poly1305_ietf_encrypt()</strong> и
  <strong>sodium_crypto_aead_chacha20poly1305_ietf_decrypt()</strong>.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Return:</comment>
  <info>string</info>  Возвращает 256-битный случайный ключ.


id: sodium_crypto_aead_chacha20poly1305_keygen
type: function
doc:
<comment>Description:</comment>
  Создаёт случайный ключ ChaCha20-Poly1305
  
  Создаёт случайный ключ для использования в <strong>sodium_crypto_aead_chacha20poly1305_encrypt()</strong> и
  <strong>sodium_crypto_aead_chacha20poly1305_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Возвращает 256-битный случайный ключ.


id: sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
type: function
doc:
<comment>Description:</comment>
  (Предпочтительно) Проверяет, затем расшифровывает с помощью XChaCha20-Poly1305
  
  (Предпочтительно) Проверяет, затем расшифровывает с помощью XChaCha20-Poly1305
  
  Как правило, XChaCha20-Poly1305 - лучший из имеющихся режимов AEAD для использования.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Должен быть в формате, предоставленном
                            <strong>sodium_crypto_aead_chacha20poly1305_ietf_encrypt()</strong> (зашифрованный текст
                            и тег, объединённые).
  <info>string</info>  <strong>$additional_data</strong>  Дополнительные проверенные данные. Это используется при проверке тега
                            подлинности, добавленного к зашифрованному тексту, но он не шифруется и
                            не сохраняется в зашифрованном тексте.
  <info>string</info>  <strong>$nonce</strong>            Номер, который необходимо использовать только один раз для каждого
                            сообщения. Длина 24 байта. Это достаточно большая граница для случайной
                            генерации (например, <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>              Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string|false</info>  В случае успешного выполнения возвращает текст или <info>false</info> в случае возникновения
                ошибки.


id: sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
type: function
doc:
<comment>Description:</comment>
  (Предпочтительно) Шифрует, а затем проверяет подлинность с помощью XChaCha20-Poly1305
  
  Шифрует, а затем проверяет подлинность с помощью XChaCha20-Poly1305(вариант eXtended-nonce).
  
  Как правило, XChaCha20-Poly1305 - лучший из имеющихся режимов AEAD для использования.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          Текстовое сообщение, которое нужно зашифровать.
  <info>string</info>  <strong>$additional_data</strong>  Дополнительные проверенные данные. Это используется при проверке тега
                            подлинности, добавленного к зашифрованному тексту, но он не шифруется и
                            не сохраняется в зашифрованном тексте.
  <info>string</info>  <strong>$nonce</strong>            Номер, который необходимо использовать только один раз для каждого
                            сообщения. Длина 24 байта. Это достаточно большая граница для случайной
                            генерации (например, <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>              Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string</info>  В случае успешного выполнения возвращает зашифрованный текст и тег или <info>false</info> в случае
          возникновения ошибки.


id: sodium_crypto_aead_xchacha20poly1305_ietf_keygen
type: function
doc:
<comment>Description:</comment>
  Создаёт случайный ключ XChaCha20-Poly1305
  
  Создаёт случайный ключ для использования в <strong>sodium_crypto_aead_xchacha20poly1305_ietf_encrypt()</strong> и
  <strong>sodium_crypto_aead_xchacha20poly1305_ietf_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Возвращает 256-битный случайный ключ.


id: sodium_crypto_auth
type: function
doc:
<comment>Description:</comment>
  Вычислить тег для сообщения
  
  Симметричная проверка подлинности сообщения с помощью <strong>sodium_crypto_auth()</strong> обеспечивает
  целостность, но не конфиденциальность.
  
  В отличие от цифровых подписей (например, <strong>sodium_crypto_sign_detached()</strong>), любая сторона, способная
  проверить сообщение, также способна проверить подлинность своих собственных сообщений.
  (Следовательно, симметричная аутентификация.)

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  Сообщение, которое вы собираетесь подтвердить.
  <info>string</info>  <strong>$key</strong>      Ключ аутентификации

<comment>Return:</comment>
  <info>string</info>  Тег аутентификации


id: sodium_crypto_auth_keygen
type: function
doc:
<comment>Description:</comment>
  Создаёт случайный ключ для sodium_crypto_auth
  
  Создаёт ключ для использования в <strong>sodium_crypto_auth()</strong> и <strong>sodium_crypto_auth_verify()</strong>.

<comment>Return:</comment>
  <info>string</info>  Возвращает 256-битный случайный ключ.


id: sodium_crypto_auth_verify
type: function
doc:
<comment>Description:</comment>
  Проверяет, допустим ли тег для сообщения
  
  Проверяет, что тег аутентификации действителен для данного сообщения и ключа.
  
  В отличие от цифровых подписей (например, <strong>sodium_crypto_sign_verify_detached()</strong>), любая сторона,
  способная проверить сообщение, также способна проверить подлинность своих собственных сообщений.
  (Следовательно, симметричная проверка подлинности.)

<comment>Param:</comment>
  <info>string</info>  <strong>$mac</strong>      Тег аутентификации, созданный <strong>sodium_crypto_auth()</strong>
  <info>string</info>  <strong>$message</strong>  Сообщение
  <info>string</info>  <strong>$key</strong>      Ключ аутентификации

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info> в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: sodium_crypto_box
type: function
doc:
<comment>Description:</comment>
  Шифрование открытым ключом с проверкой подлинности
  
  Шифрует сообщение с использованием асимметричной криптографии (с открытым ключом).
  
  Алгоритм, используемый функциями с префиксом <strong>sodium_crypto_box()</strong>: Эллиптическая кривая
  Диффи-Хеллмана на кривой Монтгомери, Curve25519; обычно сокращённо X25519.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>   Сообщение, которое нужно зашифровать.
  <info>string</info>  <strong>$nonce</strong>     Номер, который необходимо использовать только один раз для каждого сообщения.
                     Длина 24 байта. Это достаточно большая граница для случайной генерации
                     (например, <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key_pair</strong>  Смотрите <strong>sodium_crypto_box_keypair_from_secretkey_and_publickey()</strong>. Должен
                     включать секретный ключ X25519 отправителя и открытый ключ X25519 получателя.

<comment>Return:</comment>
  <info>string</info>  Возвращает зашифрованное сообщение (зашифрованный текст плюс тег аутентификации).
          Зашифрованный текст будет на 16 байтов длиннее, чем открытый текст, и необработанная
          двоичная строка. Смотрите <strong>sodium_bin2base64()</strong> для безопасного кодирования для хранения.


id: sodium_crypto_box_keypair
type: function
doc:
<comment>Description:</comment>
  Сгенерировать случайным образом секретный ключ и соответствующий ему открытый ключ
  
  Создаёт секретный и открытый ключи как одну строку.
  
  Чтобы получить секретный ключ из этой унифицированной строки ключевой пары, смотрите
  <strong>sodium_crypto_box_secretkey()</strong>. Чтобы получить открытый ключ из этой унифицированной строки
  ключевой пары, смотрите <strong>sodium_crypto_box_publickey()</strong>.

<comment>Return:</comment>
  <info>string</info>  Одна строка, содержащая секретный ключ X25519 и соответствующий открытый ключ X25519.


id: sodium_crypto_box_keypair_from_secretkey_and_publickey
type: function
doc:
<comment>Description:</comment>
  Создаёт унифицированную строку ключевой пары из секретного и открытого ключей
  
  Функция существует для удовлетворения требований API, например <strong>crypto_box()</strong>. Передайте секретный
  ключ одной стороны и открытый ключ другой и вы получите ключевую пару для коммуникации.

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Секретный ключ.
  <info>string</info>  <strong>$public_key</strong>  Открытый ключ.

<comment>Return:</comment>
  <info>string</info>  Ключевая пара X25519.


id: sodium_crypto_box_open
type: function
doc:
<comment>Description:</comment>
  Расшифровка открытого ключа с проверкой подлинности
  
  Расшифровывает сообщение с использованием асимметричной криптографии (с открытым ключом).

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>  Зашифрованное сообщение, которое нужно попытаться расшифровать.
  <info>string</info>  <strong>$nonce</strong>       Номер, который необходимо использовать только один раз для каждого сообщения.
                       Длина 24 байта. Это достаточно большая граница для случайной генерации
                       (например, <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key_pair</strong>    Смотрите <strong>sodium_crypto_box_keypair_from_secretkey_and_publickey()</strong>. Должна
                       включать открытый ключ отправителя и секретный ключ получателя.

<comment>Return:</comment>
  <info>string|false</info>  Возвращает сообщение в случае успешного выполнения или <info>false</info> в случае возникновения
                ошибки.


id: sodium_crypto_box_publickey
type: function
doc:
<comment>Description:</comment>
  Извлекает открытый ключ из ключевой пары crypto_box
  
  Получает только открытый ключ из ключевой пары.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  Ключевая пара, созданная, например,  <strong>sodium_crypto_box_keypair()</strong> или
                     <strong>sodium_crypto_box_seed_keypair()</strong>.

<comment>Return:</comment>
  <info>string</info>  Открытый ключ X25519.


id: sodium_crypto_box_publickey_from_secretkey
type: function
doc:
<comment>Description:</comment>
  Вычисляет открытый ключ из секретного ключа
  
  Учитывая секретный ключ, вычисляет соответствующий открытый ключ.
  
  Работает только с типом ключей, предназначенным для использования с <strong>crypto_box()</strong> (который
  использует эллиптическую кривую Диффи-Хеллмана на кривой Монтгомери, Curve25519; сокращённо
  X25519), а не <strong>crypto_sign()</strong> (который использует алгоритм цифровой подписи Эдвардса по кривой
  Эдвардса с соответствующими параметрами; сокращённо Ed25519).

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Секретный ключ X25519

<comment>Return:</comment>
  <info>string</info>  Открытый ключ X25519.


id: sodium_crypto_box_seal
type: function
doc:
<comment>Description:</comment>
  Шифрование открытым ключом без проверки подлинности
  
  Шифрует сообщение так, что только получатель может его расшифровать.
  
  В отличие от <strong>sodium_crypto_box()</strong>, вам нужно знать только открытый ключ получателя, чтобы
  использовать <strong>sodium_crypto_box_seal()</strong>. Однако одним из следствий этого удобства является то, что
  зашифрованный текст не привязан к статическому открытому ключу и, следовательно, не
  аутентифицируется. Следовательно, шифрование открытым ключом без проверки подлинности.
  
  <strong>sodium_crypto_box_seal()</strong> по-прежнему обеспечивает целостность зашифрованного текста. Только не
  проверяет подлинность отправителя.
  
  Если вам также нужна проверка подлинности отправителя, лучше всего начать с функций
  <strong>sodium_crypto_sign()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>     Сообщение, которое нужно зашифровать.
  <info>string</info>  <strong>$public_key</strong>  Открытый ключ, соответствующий единственному ключу, который может
                       расшифровать сообщение.

<comment>Return:</comment>
  <info>string</info>  Строка зашифрованного текста в формате (одноразовый открытый ключ, зашифрованное
          сообщение, тег аутентификации).


id: sodium_crypto_box_seal_open
type: function
doc:
<comment>Description:</comment>
  Расшифровка открытым ключом без проверки подлинности
  
  Расшифровывает сообщение, зашифрованное с помощью <strong>sodium_crypto_box_seal()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>  Зашифрованное сообщение
  <info>string</info>  <strong>$key_pair</strong>    Ключевая пара получателя. Должна включать секретный ключ.

<comment>Return:</comment>
  <info>string|false</info>  Текст в случае успешного выполнения или <info>false</info> в случае возникновения ошибки.


id: sodium_crypto_box_secretkey
type: function
doc:
<comment>Description:</comment>
  Извлекает секретный ключ из ключевой пары crypto_box
  
  Получает только секретный ключ для данной ключевой пары.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  Пара ключей, созданная, например,  <strong>sodium_crypto_box_keypair()</strong> или
                     <strong>sodium_crypto_box_seed_keypair()</strong>

<comment>Return:</comment>
  <info>string</info>  Секретный ключ X25519.


id: sodium_crypto_box_seed_keypair
type: function
doc:
<comment>Description:</comment>
  Детерминистический вывод ключевой пары из одного ключа
  
  Скрепляет начальное значение для формирования секретного ключа, извлекает открытый ключ и
  возвращает их в виде пары ключей.
  
  Функции <return>*_seed_keypair</return> идеально подходят для создания пары ключей из пароля и соли. Используйте
  результат как <strong>$seed</strong> для генерации желаемых ключей.

<comment>Param:</comment>
  <info>string</info>  <strong>$seed</strong>  Какие-то криптографические данные. Должно быть 32 байта.

<comment>Return:</comment>
  <info>string</info>  Ключевая пара X25519 (секретный и открытый ключи).


id: sodium_crypto_core_ristretto255_add
type: function
doc:
<comment>Description:</comment>
  Добавляет элемент
  
  Добавляет элемент <strong>$q</strong> к <strong>$p</strong>. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$p</strong>  Элемент.
  <info>string</info>  <strong>$q</strong>  Элемент.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_random()</strong>
   * <strong>sodium_crypto_core_ristretto255_sub()</strong>


id: sodium_crypto_core_ristretto255_from_hash
type: function
doc:
<comment>Description:</comment>
  Сопоставляет вектор
  
  Сопоставляет вектор 64-байтовый вектор <strong>$s</strong> с элементом группы. Доступно, начиная с libsodium
  1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  64-байтовый вектор.

<comment>Return:</comment>
  <info>string</info>  Возвращает 32-байтовую случайную строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_hex2bin()</strong>
   * <strong>sodium_bin2hex()</strong>
   * <strong>sodium_crypto_core_ristretto255_from_hash()</strong>


id: sodium_crypto_core_ristretto255_is_valid_point
type: function
doc:
<comment>Description:</comment>
  Определяет, лежит ли точка на кривой ristretto255
  
  Определяет, лежит ли точка на кривой ristretto255 в канонической форме на главной подгруппе и что
  точка не имеет малого порядка. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Точка эллиптической кривой.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info>, если точка <strong>$s</strong> находится на кривой ristretto255, в противном случае
        возвращает<info>false</info>.

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>
   * <strong>sodium_crypto_scalarmult_ristretto255_base()</strong>


id: sodium_crypto_core_ristretto255_random
type: function
doc:
<comment>Description:</comment>
  Генерирует случайный ключ
  
  Генерирует случайный ключ. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_add()</strong>
   * <strong>sodium_crypto_core_ristretto255_sub()</strong>


id: sodium_crypto_core_ristretto255_scalar_add
type: function
doc:
<comment>Description:</comment>
  Добавляет скалярное значение
  
  Добавляет элемент <strong>$y</strong> к <strong>$x</strong>. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$x</strong>  Скаляр, представляющий координату X.
  <info>string</info>  <strong>$y</strong>  Скаляр, представляющий координату Y.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>
   * <strong>sodium_crypto_core_ristretto255_scalar_sub()</strong>


id: sodium_crypto_core_ristretto255_scalar_complement
type: function
doc:
<comment>Description:</comment>
  Назначение sodium_crypto_core_ristretto255_scalar_complement
  
  Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Скалярное значение.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_invert
type: function
doc:
<comment>Description:</comment>
  Инвертирует скалярное значение
  
  Инвертирует скалярное значение. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Скалярное значение.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_mul
type: function
doc:
<comment>Description:</comment>
  Умножает скалярное значение
  
  Умножает скалярное значение. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$x</strong>  Скаляр, представляющий координату X.
  <info>string</info>  <strong>$y</strong>  Скаляр, представляющий координату Y.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_negate
type: function
doc:
<comment>Description:</comment>
  Отменяет скалярное значение
  
  Отменяет скалярное значение. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Скалярное значение.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_random
type: function
doc:
<comment>Description:</comment>
  Генерирует случайный ключ
  
  Генерирует случайный ключ. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_add()</strong>
   * <strong>sodium_crypto_core_ristretto255_scalar_sub()</strong>


id: sodium_crypto_core_ristretto255_scalar_reduce
type: function
doc:
<comment>Description:</comment>
  Уменьшает скалярное значение
  
  Уменьшает скалярное значение. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Скалярное значение.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>


id: sodium_crypto_core_ristretto255_scalar_sub
type: function
doc:
<comment>Description:</comment>
  Вычитает скалярное значение
  
  Вычитает скалярное значение <strong>$y</strong> из <strong>$x</strong>. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$x</strong>  Скаляр, представляющий координату X.
  <info>string</info>  <strong>$y</strong>  Скаляр, представляющий координату Y.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_scalar_random()</strong>
   * <strong>sodium_crypto_core_ristretto255_scalar_add()</strong>


id: sodium_crypto_core_ristretto255_sub
type: function
doc:
<comment>Description:</comment>
  Вычитает элемент
  
  Вычитает элемент <strong>$q</strong> из <strong>$p</strong>. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$p</strong>  Элемент.
  <info>string</info>  <strong>$q</strong>  Элемент.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_core_ristretto255_random()</strong>
   * <strong>sodium_crypto_core_ristretto255_add()</strong>


id: sodium_crypto_generichash
type: function
doc:
<comment>Description:</comment>
  Получить хеш сообщения
  
  Хеширует сообщение с помощью BLAKE2b.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  Хешируемое сообщение.
  <info>string</info>  <strong>$key</strong>      (Необязательный) криптографический ключ. Он выполняет ту же функцию, что и ключ
                    HMAC, но используется как зарезервированный раздел внутреннего состояния BLAKE2.
  <info>int</info>     <strong>$length</strong>   Размер вывода.

<comment>Return:</comment>
  <info>string</info>  Криптографический хеш в виде необработанных байтов. Если желателен вывод в
          шестнадцатеричном коде, результат можно передать в <strong>sodium_bin2hex()</strong>.


id: sodium_crypto_generichash_final
type: function
doc:
<comment>Description:</comment>
  Закончить хеширование
  
  Метод завершения для потокового API-интерфейса generichash.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>   Состояние хеша, возвращённое <strong>sodium_crypto_generichash_init()</strong>
  <info>int</info>     <strong>$length</strong>  Длина вывода.

<comment>Return:</comment>
  <info>string</info>  Криптографический хеш.


id: sodium_crypto_generichash_init
type: function
doc:
<comment>Description:</comment>
  Инициализирует хеш для потоковой передачи
  
  Метод инициализации для потокового API-интерфейса generichash.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>     Ключ generichash.
  <info>int</info>     <strong>$length</strong>  Ожидаемая длина вывода хеш-функции.

<comment>Return:</comment>
  <info>string</info>  Возвращает состояние хеша, сериализованное как необработанная двоичная строка.


id: sodium_crypto_generichash_keygen
type: function
doc:
<comment>Description:</comment>
  Создаёт случайный общий хеш-ключ
  
  Создаёт случайный ключ для использования с API generichash.

<comment>Return:</comment>
  <info>string</info>  Случайный 256-битный ключ.


id: sodium_crypto_generichash_update
type: function
doc:
<comment>Description:</comment>
  Добавить сообщение к хешу
  
  Добавляет сообщение к внутреннему хеш-состоянию.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>    Возвращаемое значение <strong>sodium_crypto_generichash_init()</strong>.
  <info>string</info>  <strong>$message</strong>  Данные для добавления в состояние хеширования.

<comment>Return:</comment>
  <info>true</info>  Функция всегда возвращает <info>true</info>.


id: sodium_crypto_kdf_derive_from_key
type: function
doc:
<comment>Description:</comment>
  Извлечь подраздел
  
  Получает подраздел из корневого ключа и дополнительного контекста.
  
  Похожа на<strong>hash_hkdf()</strong>.

<comment>Param:</comment>
  <info>int</info>     <strong>$subkey_length</strong>  Длина возвращаемого ключа (в байтах)
  <info>int</info>     <strong>$subkey_id</strong>      Вернуть подключ n из заданного корневого ключа. Полезно для поиска.
  <info>string</info>  <strong>$context</strong>        Контекст, зависящий от приложения.
  <info>string</info>  <strong>$key</strong>            Корневой ключ, из которого получен подключ.

<comment>Return:</comment>
  <info>string</info>  Строка псевдослучайных (необработанных двоичных) байтов.


id: sodium_crypto_kdf_keygen
type: function
doc:
<comment>Description:</comment>
  Создаёт случайный корневой ключ для интерфейса KDF
  
  Создаёт случайный ключ, подходящий для использования в качестве корневого ключа для
  <strong>sodium_crypto_kdf_derive_from_key()</strong>.

<comment>Return:</comment>
  <info>string</info>  Случайный 256-битный ключ.


id: sodium_crypto_kx_client_session_keys
type: function
doc:
<comment>Description:</comment>
  Вычисляет ключи сессии на стороне клиента
  
  Вычисляет ключи сеанса на стороне клиента, используя метод обмена ключами X25519 + BLAKE2b.

<comment>Param:</comment>
  <info>string</info>  <strong>$client_key_pair</strong>  Пара ключей crypto_kx, например, сгенерированная
                            <strong>sodium_crypto_kx_keypair()</strong>.
  <info>string</info>  <strong>$server_key</strong>       Открытый ключ crypto_kx.

<comment>Return:</comment>
  <info>array</info>  Массив, состоящий из двух строк. Первую следует использовать для приёма данных с сервера.
         Вторую следует использовать для отправки данных на сервер.


id: sodium_crypto_kx_keypair
type: function
doc:
<comment>Description:</comment>
  Создаёт новую пару ключей sodium
  
  Создать новую пару ключей sodium, состоящую из секретного ключа (32 байта) и следующего за ним
  открытого ключа (32 байта). Ключи можно получить, вызвав <strong>sodium_crypto_kx_secretkey()</strong> и
  <strong>sodium_crypto_kx_publickey()</strong> соответственно.

<comment>Return:</comment>
  <info>string</info>  Возвращает новую пару ключей в случае успешного выполнения; выбрасывает исключение в
          противном случае.


id: sodium_crypto_kx_publickey
type: function
doc:
<comment>Description:</comment>
  Извлекает открытый ключ из пары ключей crypto_kx
  
  Извлекает открытый ключ из пары ключей crypto_kx.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  Пара ключей X25519, например, сгенерированная <strong>sodium_crypto_kx_keypair()</strong>.

<comment>Return:</comment>
  <info>string</info>  Открытый ключ X25519.


id: sodium_crypto_kx_secretkey
type: function
doc:
<comment>Description:</comment>
  Извлекает секретный ключ из пары ключей crypto_kx
  
  Извлекает секретный ключ из пары ключей crypto_kx.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  Пара ключей X25519, например, сгенерированная <strong>sodium_crypto_kx_keypair()</strong>.

<comment>Return:</comment>
  <info>string</info>  Секретный ключ X25519.


id: sodium_crypto_kx_seed_keypair
type: function
doc:
<comment>Description:</comment>
  Описание
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$seed</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: sodium_crypto_kx_server_session_keys
type: function
doc:
<comment>Description:</comment>
  Вычисляет ключи сессии на стороне сервера
  
  Вычисляет ключи сессии на стороне сервера, используя метод обмена ключами X25519 + BLAKE2b.

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key_pair</strong>  Пара ключей crypto_kx, например, сгенерированная
                            <strong>sodium_crypto_kx_keypair()</strong>.
  <info>string</info>  <strong>$client_key</strong>       Открытый ключ crypto_kx.

<comment>Return:</comment>
  <info>array</info>  Массив, состоящий из двух строк. Первую следует использовать для получения данных от
         клиента. Вторую следует использовать для отправки данных клиенту.


id: sodium_crypto_pwhash
type: function
doc:
<comment>Description:</comment>
  Получает ключ из пароля, используя Argon2
  
  Эта функция предоставляет низкоуровневый доступ к функции crypto_pwhash библиотеки libsodium. Если
  у вас нет принципиальной необходимости в этой функции, то лучше использовать
  <strong>sodium_crypto_pwhash_str()</strong> или <strong>password_hash()</strong>.
  
  Распространённая причина использования этой конкретной функции - получить начальные числа для
  криптографических ключей из пароля и соли, а затем использовать эти начальные числа для генерации
  фактических ключей, необходимых для некоторых целей (например, <strong>sodium_crypto_sign_detached()</strong>).

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>    <info>int</info>; Длина создаваемого хеша пароля в байтах.
  <info>string</info>  <strong>$password</strong>  <info>string</info>; Пароль, для которого создаётся хеш.
  <info>string</info>  <strong>$salt</strong>      Соль, которую нужно добавить к паролю перед хешированием. Соль должна быть
                     непредсказуемой, в идеале генерируемой из хорошего источника случайных чисел,
                     такого как <strong>random_bytes()</strong>, а также быть длиной не меньше байт, указанных в
                     константе <info>SODIUM_CRYPTO_PWHASH_SALTBYTES</info>.
  <info>int</info>     <strong>$opslimit</strong>  Представляет максимальное количество вычислений для выполнения Увеличение этого
                     числа приведёт к тому, что функции потребуется больше циклов ЦП для вычисления
                     ключа. Существуют константы, доступные для установки предела операций для
                     соответствующих значений в зависимости от предполагаемого использования, в
                     порядке убывания: <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE</info> и
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE</info>.
  <info>int</info>     <strong>$memlimit</strong>  Максимальный объем ОЗУ в байтах, который будет использовать функция. Существуют
                     константы, которые помогут вам выбрать подходящее значение в порядке размера:
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE</info> и
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE</info>. Как правило, они должны сочетаться с
                     соответствующими значениями <strong>$opslimit</strong>.
  <info>int</info>     <strong>$algo</strong>      <info>int</info> Число, указывающее используемый алгоритм хеширования. По умолчанию задана
                     <info>SODIUM_CRYPTO_PWHASH_ALG_DEFAULT</info> (рекомендуемый в настоящее время алгоритм,
                     который может быть изменён с при смене версии libsodium на другую), или явно
                     используя константу <info>SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13</info>, представляющую версию
                     алгоритма Argon2id 1.3.

<comment>Return:</comment>
  <info>string</info>  Возвращает захешированный пароль. Возвращаемое значение является бинарной строкой, а не
          ASCII-представлением и не содержит никакой дополнительной информации о параметрах, с
          которыми генерировался хеш. Таким образом вам необходимо самим сохранять значения
          использованных параметров для проверки корректности хеша в будущем. Чтобы всем этим не
          заниматься - используйте функцию <strong>sodium_crypto_pwhash_str()</strong>.


id: sodium_crypto_pwhash_scryptsalsa208sha256
type: function
doc:
<comment>Description:</comment>
  Получает ключ из пароля, используя scrypt
  
  Аналог функции scrypt <strong>sodium_crypto_pwhash()</strong>.
  
  Распространённая причина использования этой конкретной функции - получить начальные числа для
  криптографических ключей из пароля и соли, а затем использовать эти начальные числа для генерации
  фактических ключей, необходимых для некоторых целей (например, <strong>sodium_crypto_sign_detached()</strong>).

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>    Длина генерируемого хеша пароля в байтах.
  <info>string</info>  <strong>$password</strong>  Пароль, для которого создаётся хеш.
  <info>string</info>  <strong>$salt</strong>      Соль, которую нужно добавить к паролю перед хешированием. Соль должна быть
                     непредсказуемой, в идеале сгенерированной из хорошего источника случайных
                     чисел, такого как <strong>random_bytes()</strong>, и иметь длину не менее
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES</info> байт.
  <info>int</info>     <strong>$opslimit</strong>  Представляет максимальное количество вычислений для выполнения. Увеличение
                     этого числа приведёт к тому, что функции потребуется больше циклов ЦП для
                     вычисления ключа. Доступны некоторые константы для установки предела операций
                     на соответствующие значения в зависимости от предполагаемого использования, в
                     порядке размера: <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE</info>
                     и <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE</info>.
  <info>int</info>     <strong>$memlimit</strong>  Максимальный объем ОЗУ, который будет использовать функция, в байтах.
                     Существуют константы, которые помогут вам выбрать подходящее значение в порядке
                     их размера: <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE</info> and
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE</info>. Обычно они должны
                     сочетаться с соответствующими значениями <strong>$opslimit</strong>.

<comment>Return:</comment>
  <info>string</info>  Строка байтов желаемой длины.


id: sodium_crypto_pwhash_scryptsalsa208sha256_str
type: function
doc:
<comment>Description:</comment>
  Получить закодированный в ASCII хеш
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  
  <info>int</info>     <strong>$opslimit</strong>  
  <info>int</info>     <strong>$memlimit</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: sodium_crypto_pwhash_scryptsalsa208sha256_str_verify
type: function
doc:
<comment>Description:</comment>
  Проверить, что пароль является действительной строкой проверки пароля
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$hash</strong>      
  <info>string</info>  <strong>$password</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: sodium_crypto_pwhash_str
type: function
doc:
<comment>Description:</comment>
  Получить ASCII-кодированный хеш
  
  Использует ресурсоёмкий по ЦПУ и памяти алгоритм хеширования. Соль генерируется случайно. Можно
  задать ограничения по использованию памяти и ЦПУ. Можно использовать для генерации ASCII-хешей,
  подходящих для хранения паролей.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  <info>string</info>; Пароль, для которого будет генерироваться хеш.
  <info>int</info>     <strong>$opslimit</strong>  Задаёт ограничение на использование процессорного времени. Чем больше число -
                     тем больше будет нагрузка на процессор при генерации ключа. Также можно
                     использовать предопределённые константы для этого параметра (перечислены в
                     порядке усиления защищённости и потребления ЦПУ):
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE</info> и
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE</info>.
  <info>int</info>     <strong>$memlimit</strong>  Задаёт ограничение на использование памяти в байтах. Можно использовать
                     предопределённые константы для этого параметра (перечислены в порядке усиления
                     защищённости и потребления памяти): <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE</info> и
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE</info>. Имеет смысл использовать одинаковые
                     уровни защищённости в memlimit и opslimit.

<comment>Return:</comment>
  <info>string</info>  Возвращает хеш пароля.
          
          Для того, чтобы для одного и того же пароля всегда генерировался один и тот же хеш,
          необходимо использовать одинаковые значения <strong>$opslimit</strong> и <strong>$memlimit</strong>. Так как эти параметры
          включены в сгенерированный хеш, функция <strong>sodium_crypto_pwhash_str_verify()</strong> может проверять
          его корректность без необходимости хранить эти параметры отдельно.

<comment>See Also:</comment>
   * <strong>sodium_crypto_pwhash_str_verify()</strong>
   * <strong>sodium_crypto_pwhash()</strong>
   * <strong>password_hash()</strong>
   * <strong>password_verify()</strong>
   * Документация на Libsodium Argon2


id: sodium_crypto_pwhash_str_needs_rehash
type: function
doc:
<comment>Description:</comment>
  Определяет, следует ли повторно использовать пароль
  
  Определяет, следует ли повторно использовать пароль, на основе текущего хеш-значения <strong>$opslimit</strong> и
  <strong>$memlimit</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  Хеш пароля
  <info>int</info>     <strong>$opslimit</strong>  Настроенный opslimit; смотрите <strong>sodium_crypto_pwhash_str()</strong>
  <info>int</info>     <strong>$memlimit</strong>  Настроенный memlimit; смотрите <strong>sodium_crypto_pwhash_str()</strong>

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info>, если предоставленный memlimit/opslimit не соответствует тому, что хранится
        в хеше. Возвращает <info>false</info>, если они совпадают.


id: sodium_crypto_pwhash_str_verify
type: function
doc:
<comment>Description:</comment>
  Проверяет, что пароль соответствует хешу
  
  Проверяет, что хеш пароля, созданный <strong>sodium_crypto_pwhash_str()</strong>, соответствует заданному паролю.
  Обратите внимание, что в этой функции порядок аргументов не соответствует порядку аргументов в
  похожей функции <strong>password_verify()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$hash</strong>      Хеш, созданный функцией <strong>password_hash()</strong>.
  <info>string</info>  <strong>$password</strong>  Пользовательский пароль.

<comment>Return:</comment>
  <info>bool</info>  Возвращает <info>true</info>, если пароль соответствует хешу, и <info>false</info>, если нет.

<comment>See Also:</comment>
   * <strong>sodium_crypto_pwhash_str()</strong>
   * <strong>password_hash()</strong>
   * <strong>password_verify()</strong>


id: sodium_crypto_scalarmult
type: function
doc:
<comment>Description:</comment>
  Вычислить общий секрет на основании секретного ключа пользователя и открытого ключа другого
  пользователя
  
  Эллиптическая кривая Диффи-Хеллмана. Вычисляет скаляр n умноженный на точку p на эллиптической
  кривой.

<comment>Param:</comment>
  <info>string</info>  <strong>$n</strong>  скаляр, который обычно является секретным ключом
  <info>string</info>  <strong>$p</strong>  точка (координата x), которая обычно является открытым ключом

<comment>Return:</comment>
  <info>string</info>  32-байтовая случайная строка.


id: sodium_crypto_scalarmult_base
type: function
doc:
<comment>Description:</comment>
  Псевдоним sodium_crypto_box_publickey_from_secretkey
  
  Функция является псевдонимом:  <strong>sodium_crypto_box_publickey_from_secretkey()</strong>.


id: sodium_crypto_scalarmult_ristretto255
type: function
doc:
<comment>Description:</comment>
  Вычисляет общий секрет
  
  Вычисляет скаляр <strong>$n</strong>, умноженный на точку <strong>$p</strong>. Доступно, начиная с libsodium 1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$n</strong>  Скаляр, который обычно является закрытым ключом.
  <info>string</info>  <strong>$p</strong>  Точка (x-координата), которая обычно является открытым ключом.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_scalarmult_ristretto255_base()</strong>


id: sodium_crypto_scalarmult_ristretto255_base
type: function
doc:
<comment>Description:</comment>
  Вычисляет открытый ключ из закрытого ключа
  
  Учитывая закрытый ключ, вычисляет соответствующий открытый ключ. Доступно, начиная с libsodium
  1.0.18.
  
  К настоящему времени эта функция ещё не была документирована; для ознакомления доступен только
  список аргументов.

<comment>Param:</comment>
  <info>string</info>  <strong>$n</strong>  Закрытый ключ.

<comment>Return:</comment>
  <info>string</info>  Возвращает случайную 32-байтовую строку (<info>string</info>).

<comment>See Also:</comment>
   * <strong>sodium_crypto_scalarmult_ristretto255()</strong>


id: sodium_crypto_secretbox
type: function
doc:
<comment>Description:</comment>
  Шифрование с общим ключом с проверкой подлинности
  
  Шифрование сообщения симметричным (общим) ключом.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  Текстовое сообщение, которое нужно зашифровать.
  <info>string</info>  <strong>$nonce</strong>    Номер, который необходимо использовать только один раз для каждого сообщения.
                    Длина 24 байта. Это достаточно большая граница для случайной генерации
                    (например, <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>      Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string</info>  Возвращает зашифрованную строку.

<comment>See Also:</comment>
   * <strong>sodium_crypto_secretbox_open()</strong>
   * <strong>sodium_crypto_secretbox_keygen()</strong>
   * <strong>random_bytes()</strong>


id: sodium_crypto_secretbox_keygen
type: function
doc:
<comment>Description:</comment>
  Создаёт случайный ключ для sodium_crypto_secretbox
  
  Создаёт случайный ключ для <strong>sodium_crypto_secretbox()</strong> и <strong>sodium_crypto_secretbox_open()</strong>.

<comment>Return:</comment>
  <info>string</info>  Возвращает сгенерированную строку криптографически безопасных случайных байтов.

<comment>See Also:</comment>
   * <strong>sodium_bin2hex()</strong>
   * <strong>random_bytes()</strong>


id: sodium_crypto_secretbox_open
type: function
doc:
<comment>Description:</comment>
  Расшифровка с использованием общего ключа с проверкой подлинности
  
  Расшифровывает зашифрованное сообщение симметричным (общим) ключом.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>  Должен быть в формате, предоставленном <strong>sodium_crypto_secretbox()</strong>
                       (зашифрованный текст и тег, объединённые).
  <info>string</info>  <strong>$nonce</strong>       Номер, который необходимо использовать только один раз для каждого сообщения.
                       Длина 24 байта. Это достаточно большая граница для случайной генерации
                       (например, <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>         Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string|false</info>  Расшифрованная строка в случае успешного выполнения или <info>false</info> в случае возникновения
                ошибки.

<comment>See Also:</comment>
   * <strong>sodium_crypto_secretbox()</strong>
   * <strong>sodium_crypto_secretbox_keygen()</strong>
   * <strong>random_bytes()</strong>


id: sodium_crypto_secretstream_xchacha20poly1305_init_pull
type: function
doc:
<comment>Description:</comment>
  Инициализирует контекст secretstream для дешифрования
  
  Инициализирует контекст secretstream для дешифрования

<comment>Param:</comment>
  <info>string</info>  <strong>$header</strong>  Заголовок secretstream. Должно быть одно из значений, созданных
                   <strong>sodium_crypto_secretstream_xchacha20poly1305_init_push()</strong>.
  <info>string</info>  <strong>$key</strong>     Ключ шифрования (256 бит).

<comment>Return:</comment>
  <info>string</info>  Состояние secretstream.


id: sodium_crypto_secretstream_xchacha20poly1305_init_push
type: function
doc:
<comment>Description:</comment>
  Инициализирует контекст secretstream для шифрования
  
  Инициализирует контекст secretstream для шифрования

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  Ключ криптографии. Смотрите <strong>sodium_crypto_secretstream_xchacha20poly1305_keygen()</strong>.

<comment>Return:</comment>
  <info>array</info>  Массив с двумя строковыми значениями:


id: sodium_crypto_secretstream_xchacha20poly1305_keygen
type: function
doc:
<comment>Description:</comment>
  Создаёт случайный ключ secretstream
  
  Создаёт случайный ключ secretstream

<comment>Return:</comment>
  <info>string</info>  Возвращает строку случайных байтов.


id: sodium_crypto_secretstream_xchacha20poly1305_pull
type: function
doc:
<comment>Description:</comment>
  Расшифровывает часть данных из зашифрованного потока
  
  Расшифровывает часть данных из зашифрованного потока.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>            Смотрите <strong>sodium_crypto_secretstream_xchacha20poly1305_init_pull()</strong> и
                            <strong>sodium_crypto_secretstream_xchacha20poly1305_init_push()</strong>
  <info>string</info>  <strong>$ciphertext</strong>       Фрагмент зашифрованного текста, который нужно расшифровать.
  <info>string</info>  <strong>$additional_data</strong>  Необязательные дополнительные данные для включения в тег аутентификации.

<comment>Return:</comment>
  <info>array|false</info>  Массив с двумя значениями:  Строка (<info>string</info>); Расшифрованный фрагмент  Целое число
               (<info>int</info>); Необязательный тег (если предоставляется во время отправки). Возможные
               значения: <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE</info>: самый
               распространённый тег, который не добавляет никакой информации о характере сообщения.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL</info>: указывает, что сообщение
               отмечает конец потока, и стирает секретный ключ, использованный для шифрования
               предыдущей последовательности. <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH</info>:
               указывает, что сообщение отмечает конец набора сообщений, но не конец потока.
               Например, огромная строка JSON, отправленная в виде нескольких фрагментов, может
               использовать этот тег, чтобы указать приложению, что строка завершена и что её можно
               декодировать. Но сам поток не закрывается и могут последовать дополнительные данные.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY</info>: "забывает" ключ,
               использованный для шифрования этого и предыдущих сообщений и получает новый секретный
               ключ.
               
               Строка (<info>string</info>); Расшифрованный фрагмент
               
               Целое число (<info>int</info>); Необязательный тег (если предоставляется во время отправки).
               Возможные значения: <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE</info>: самый
               распространённый тег, который не добавляет никакой информации о характере сообщения.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL</info>: указывает, что сообщение
               отмечает конец потока, и стирает секретный ключ, использованный для шифрования
               предыдущей последовательности. <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH</info>:
               указывает, что сообщение отмечает конец набора сообщений, но не конец потока.
               Например, огромная строка JSON, отправленная в виде нескольких фрагментов, может
               использовать этот тег, чтобы указать приложению, что строка завершена и что её можно
               декодировать. Но сам поток не закрывается и могут последовать дополнительные данные.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY</info>: "забывает" ключ,
               использованный для шифрования этого и предыдущих сообщений и получает новый секретный
               ключ.


