# php_manual

id: radius_auth_open
type: function
doc:
<comment>Description:</comment>
  Creates a Radius handle for authentication

<comment>Return:</comment>
  <info>resource</info>  Returns a handle on success, <info>false</info> on error. This function only fails if insufficient
            memory is available.


id: radius_close
type: function
doc:
<comment>Description:</comment>
  Frees all ressources
  
  It is not needed to call this function because php frees all resources at the end of each request.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: radius_config
type: function
doc:
<comment>Description:</comment>
  Causes the library to read the given configuration file
  
  Before issuing any Radius requests, the library must be made aware of the servers it can contact.
  The easiest way to configure the library is to call <strong>radius_config()</strong>. <strong>radius_config()</strong> causes the
  library to read a configuration file whose format is described in radius.conf.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  
  <info>string</info>    <strong>$file</strong>           The pathname of the configuration file is passed as the file argument to
                            <strong>radius_config()</strong>. The library can also be configured programmatically by
                            calls to <strong>radius_add_server()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: radius_create_request
type: function
doc:
<comment>Description:</comment>
  Create accounting or authentication request
  
  A Radius request consists of a code specifying the kind of request, and zero or more attributes
  which provide additional information. To begin constructing a new request, call
  <strong>radius_create_request()</strong>.
  
  Attention: You must call this function, before you can put any attribute!

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  
  <info>int</info>       <strong>$type</strong>           Type is <info>RADIUS_ACCESS_REQUEST</info> or <info>RADIUS_ACCOUNTING_REQUEST</info>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: radius_cvt_addr
type: function
doc:
<comment>Description:</comment>
  Converts raw data to IP-Address
  
  Converts raw data to IP-Address

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Input data

<comment>Return:</comment>
  <info>string</info>  Returns the IP-Address.

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


id: radius_cvt_int
type: function
doc:
<comment>Description:</comment>
  Converts raw data to integer
  
  Converts raw data to integer

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Input data

<comment>Return:</comment>
  <info>int</info>  Returns the integer, retrieved from data.

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


id: radius_cvt_string
type: function
doc:
<comment>Description:</comment>
  Converts raw data to string
  
  Converts raw data to string

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Input data

<comment>Return:</comment>
  <info>string</info>  Returns the string, retrieved from data.

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


id: radius_demangle
type: function
doc:
<comment>Description:</comment>
  Demangles data
  
  Some data (Passwords, MS-CHAPv1 MPPE-Keys) is mangled for security reasons, and must be demangled
  before you can use them.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>string</info>    <strong>$mangled</strong>        The mangled data to demangle

<comment>Return:</comment>
  <info>string</info>  Returns the demangled string, or <info>false</info> on error.


id: radius_demangle_mppe_key
type: function
doc:
<comment>Description:</comment>
  Derives mppe-keys from mangled data
  
  When using MPPE with MS-CHAPv2, the send- and recv-keys are mangled (see RFC 2548), however this
  function is useless, because I don't think that there is or will be a PPTP-MPPE implementation in
  PHP.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>string</info>    <strong>$mangled</strong>        The mangled data to demangle

<comment>Return:</comment>
  <info>string</info>  Returns the demangled string, or <info>false</info> on error.


id: radius_get_attr
type: function
doc:
<comment>Description:</comment>
  Extracts an attribute
  
  Like Radius requests, each response may contain zero or more attributes. After a response has been
  received successfully by <strong>radius_send_request()</strong>, its attributes can be extracted one by one using
  <strong>radius_get_attr()</strong>. Each time <strong>radius_get_attr()</strong> is called, it gets the next attribute from the
  current response.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.

<comment>Return:</comment>
  <info>mixed</info>  Returns an associative array containing the attribute-type and the data, or error number \<= 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>
  Extracts the data from a tagged attribute
  
  If a tagged attribute has been returned from <strong>radius_get_attr()</strong>, <strong>radius_get_tagged_attr_data()</strong> will
  return the data from the attribute.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The tagged attribute to be decoded.

<comment>Return:</comment>
  <info>string|false</info>  Returns the data from the tagged attribute  ou <info>false</info> em caso de falha.

<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>
  Extracts the tag from a tagged attribute
  
  If a tagged attribute has been returned from <strong>radius_get_attr()</strong>, <strong>radius_get_tagged_attr_data()</strong> will
  return the tag from the attribute.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The tagged attribute to be decoded.

<comment>Return:</comment>
  <info>int|false</info>  Returns the tag from the tagged attribute  ou <info>false</info> em caso de falha.

<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>
  Extracts a vendor specific attribute
  
  If <strong>radius_get_attr()</strong> returns <info>RADIUS_VENDOR_SPECIFIC</info>, <strong>radius_get_vendor_attr()</strong> may be called to
  determine the vendor.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Input data

<comment>Return:</comment>
  <info>array</info>  Returns an associative array containing the attribute-type, vendor and the data, or <info>false</info>
         on error.

<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>
  Attaches an IP address attribute
  
  Attaches an IP address attribute to the current RADIUS request.
  
  Uma requisição deve ser criada por meio de <strong>radius_create_request()</strong> antes que esta função possa ser
  chamada.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>int</info>       <strong>$type</strong>           O tipo de atributo.
  <info>string</info>    <strong>$addr</strong>           An IPv4 address in string form, such as <return>10.0.0.1</return>.
  <info>int</info>       <strong>$options</strong>        Uma máscara de bits das opções de atributo. As opções disponíveis
                            incluem <info>RADIUS_OPTION_TAGGED</info> e <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            A tag de atributo. Este parâmetro é ignorado, a menos que a opção
                            <info>RADIUS_OPTION_TAGGED</info> esteja definida.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: radius_put_attr
type: function
doc:
<comment>Description:</comment>
  Attaches a binary attribute
  
  Attaches a binary attribute to the current RADIUS request.
  
  Uma requisição deve ser criada por meio de <strong>radius_create_request()</strong> antes que esta função possa ser
  chamada.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>int</info>       <strong>$type</strong>           O tipo de atributo.
  <info>string</info>    <strong>$value</strong>          The attribute value, which will be treated as a raw binary string.
  <info>int</info>       <strong>$options</strong>        Uma máscara de bits das opções de atributo. As opções disponíveis
                            incluem <info>RADIUS_OPTION_TAGGED</info> e <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            A tag de atributo. Este parâmetro é ignorado, a menos que a opção
                            <info>RADIUS_OPTION_TAGGED</info> esteja definida.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Attaches an integer attribute
  
  Attaches an integer attribute to the current RADIUS request.
  
  Uma requisição deve ser criada por meio de <strong>radius_create_request()</strong> antes que esta função possa ser
  chamada.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>int</info>       <strong>$type</strong>           O tipo de atributo.
  <info>int</info>       <strong>$value</strong>          The attribute value.
  <info>int</info>       <strong>$options</strong>        Uma máscara de bits das opções de atributo. As opções disponíveis
                            incluem <info>RADIUS_OPTION_TAGGED</info> e <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            A tag de atributo. Este parâmetro é ignorado, a menos que a opção
                            <info>RADIUS_OPTION_TAGGED</info> esteja definida.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Attaches a string attribute
  
  Attaches a string attribute to the current RADIUS request. In general, <strong>radius_put_attr()</strong> is a more
  useful function for attaching string attributes, as it is binary safe.
  
  Uma requisição deve ser criada por meio de <strong>radius_create_request()</strong> antes que esta função possa ser
  chamada.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>int</info>       <strong>$type</strong>           O tipo de atributo.
  <info>string</info>    <strong>$value</strong>          The attribute value. This value is expected by the underlying library to
                            be null terminated, therefore this parameter is not binary safe.
  <info>int</info>       <strong>$options</strong>        Uma máscara de bits das opções de atributo. As opções disponíveis
                            incluem <info>RADIUS_OPTION_TAGGED</info> e <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            A tag de atributo. Este parâmetro é ignorado, a menos que a opção
                            <info>RADIUS_OPTION_TAGGED</info> esteja definida.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Attaches a vendor specific IP address attribute
  
  Attaches an IP address vendor specific attribute to the current RADIUS request.
  
  Uma requisição deve ser criada por meio de <strong>radius_create_request()</strong> antes que esta função possa ser
  chamada.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>int</info>       <strong>$vendor</strong>         O ID do fornecedor.
  <info>int</info>       <strong>$type</strong>           O tipo de atributo.
  <info>string</info>    <strong>$addr</strong>           An IPv4 address in string form, such as <return>10.0.0.1</return>.
  <info></info>          <strong>$options</strong>        Uma máscara de bits das opções de atributo. As opções disponíveis
                            incluem <info>RADIUS_OPTION_TAGGED</info> e <info>RADIUS_OPTION_SALT</info>.
  <info></info>          <strong>$tag</strong>            A tag de atributo. Este parâmetro é ignorado, a menos que a opção
                            <info>RADIUS_OPTION_TAGGED</info> esteja definida.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: radius_put_vendor_attr
type: function
doc:
<comment>Description:</comment>
  Attaches a vendor specific binary attribute
  
  Attaches a vendor specific binary attribute to the current RADIUS request.
  
  Uma requisição deve ser criada por meio de <strong>radius_create_request()</strong> antes que esta função possa ser
  chamada.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>int</info>       <strong>$vendor</strong>         O ID do fornecedor.
  <info>int</info>       <strong>$type</strong>           O tipo de atributo.
  <info>string</info>    <strong>$value</strong>          The attribute value, which will be treated as a raw binary string.
  <info>int</info>       <strong>$options</strong>        Uma máscara de bits das opções de atributo. As opções disponíveis
                            incluem <info>RADIUS_OPTION_TAGGED</info> e <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            A tag de atributo. Este parâmetro é ignorado, a menos que a opção
                            <info>RADIUS_OPTION_TAGGED</info> esteja definida.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: radius_put_vendor_int
type: function
doc:
<comment>Description:</comment>
  Attaches a vendor specific integer attribute
  
  Attaches a vendor specific integer attribute to the current RADIUS request.
  
  Uma requisição deve ser criada por meio de <strong>radius_create_request()</strong> antes que esta função possa ser
  chamada.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>int</info>       <strong>$vendor</strong>         O ID do fornecedor.
  <info>int</info>       <strong>$type</strong>           O tipo de atributo.
  <info>int</info>       <strong>$value</strong>          The attribute value.
  <info>int</info>       <strong>$options</strong>        Uma máscara de bits das opções de atributo. As opções disponíveis
                            incluem <info>RADIUS_OPTION_TAGGED</info> e <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            A tag de atributo. Este parâmetro é ignorado, a menos que a opção
                            <info>RADIUS_OPTION_TAGGED</info> esteja definida.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: radius_put_vendor_string
type: function
doc:
<comment>Description:</comment>
  Attaches a vendor specific string attribute
  
  Attaches a vendor specific string attribute to the current RADIUS request. In general,
  <strong>radius_put_vendor_attr()</strong> is a more useful function for attaching string attributes, as it is
  binary safe.
  
  Uma requisição deve ser criada por meio de <strong>radius_create_request()</strong> antes que esta função possa ser
  chamada.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.
  <info>int</info>       <strong>$vendor</strong>         O ID do fornecedor.
  <info>int</info>       <strong>$type</strong>           O tipo de atributo.
  <info>string</info>    <strong>$value</strong>          The attribute value. This value is expected by the underlying library to
                            be null terminated, therefore this parameter is not binary safe.
  <info>int</info>       <strong>$options</strong>        Uma máscara de bits das opções de atributo. As opções disponíveis
                            incluem <info>RADIUS_OPTION_TAGGED</info> e <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            A tag de atributo. Este parâmetro é ignorado, a menos que a opção
                            <info>RADIUS_OPTION_TAGGED</info> esteja definida.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: radius_request_authenticator
type: function
doc:
<comment>Description:</comment>
  Returns the request authenticator
  
  The request authenticator is needed for demangling mangled data like passwords and
  encryption-keys.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.

<comment>Return:</comment>
  <info>string</info>  Returns the request authenticator as string, or <info>false</info> on error.

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


id: radius_salt_encrypt_attr
type: function
doc:
<comment>Description:</comment>
  Salt-encrypts a value
  
  Applies the RADIUS salt-encryption algorithm to the given value.
  
  In general, this is achieved automatically by providing the <info>RADIUS_OPTION_SALT</info> option to an
  attribute setter function, but this function can be used if low-level request construction is
  required.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The data to be salt-encrypted.

<comment>Return:</comment>
  <info>string|false</info>  Returns the salt-encrypted data  ou <info>false</info> em caso de falha.

<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>
  Sends the request and waits for a reply
  
  After the Radius request has been constructed, it is sent by <strong>radius_send_request()</strong>.
  
  The <strong>radius_send_request()</strong> function sends the request and waits for a valid reply, retrying the
  defined servers in round-robin fashion as necessary.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.

<comment>Return:</comment>
  <info>int</info>  If a valid response is received, <strong>radius_send_request()</strong> returns the Radius code which
       specifies the type of the response. This will typically be <info>RADIUS_ACCESS_ACCEPT</info>,
       <info>RADIUS_ACCESS_REJECT</info>, or <info>RADIUS_ACCESS_CHALLENGE</info>. If no valid response is received,
       <strong>radius_send_request()</strong> returns <info>false</info>.

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


id: radius_server_secret
type: function
doc:
<comment>Description:</comment>
  Returns the shared secret
  
  The shared secret is needed as salt for demangling mangled data like passwords and
  encryption-keys.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.

<comment>Return:</comment>
  <info>string</info>  Returns the server's shared secret as string, or <info>false</info> on error.


id: radius_strerror
type: function
doc:
<comment>Description:</comment>
  Returns an error message
  
  If Radius-functions fail then they record an error message. This error message can be retrieved
  with this function.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  O resource RADIUS.

<comment>Return:</comment>
  <info>string</info>  Returns error messages as string from failed radius functions.


id: rand
type: function
doc:
<comment>Description:</comment>
  Generate a random integer
  
  If called without the optional <strong>$min</strong>, <strong>$max</strong> arguments <strong>rand()</strong> returns a pseudo-random integer between
  0 and <strong>getrandmax()</strong>.  If you want a random number between 5 and 15 (inclusive), for example, use
  <return>rand(5, 15)</return>.
  
  Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos
  criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.
  
  Se aleatoriedade criptograficamente segura for necessária, a classe <class>Random\Randomizer</class> pode ser
  usada com o mecanismo <class>Random\Engine\Secure</class>. Para casos de uso simples, as funções <strong>random_int()</strong> e
  <strong>random_bytes()</strong> fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema
  operacional.
  
  On some platforms (such as Windows), <strong>getrandmax()</strong> is only 32767.  If you require a range larger
  than 32767, specifying <strong>$min</strong> and <strong>$max</strong> will allow you to create a range larger than this, or
  consider using <strong>mt_rand()</strong> instead.
  
  As of PHP 7.1.0, <strong>rand()</strong> uses the same random number generator as <strong>mt_rand()</strong>. To preserve backwards
  compatibility <strong>rand()</strong> allows <strong>$max</strong> to be smaller than <strong>$min</strong> as opposed to returning <info>false</info> as
  <strong>mt_rand()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$min</strong>  The lowest value to return (default: 0)
  <info>int</info>  <strong>$max</strong>  The highest value to return (default: <strong>getrandmax()</strong>)

<comment>Return:</comment>
  <info>int</info>  A pseudo random value between <strong>$min</strong> (or 0) and <strong>$max</strong> (or <strong>getrandmax()</strong>, inclusive).

<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>
  Get cryptographically secure random bytes
  
  Generates a string containing uniformly selected random bytes with the requested <strong>$length</strong>.
  
  As the returned bytes are selected completely randomly, the resulting string is likely to contain
  unprintable characters or invalid UTF-8 sequences. It may be necessary to encode it before
  transmission or display.
  
  The randomness generated by this function is suitable for all applications, including the
  generation of long-term secrets, such as encryption keys.
  
  As fontes de aleatoriedade usadas para esta função são as seguintes:
  
  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 se CCRandomGenerateBytes estiver disponível em
  tempo de compilação): 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
  
  Qualquer combinação de sistema operacional e versão do PHP não mencionada anteriormente:
  /dev/urandom
  
  Se nenhuma das fontes estiver disponível ou todas falharem em gerar aleatoriedade, então uma
  exceção <class>Random\RandomException</class> será lançada.
  
  Embora esta função tenha sido adicionada ao PHP no PHP 7.0, uma implementação no espaço do usuário
  está disponível para o PHP 5.2 ao 5.6, inclusive.

<comment>Param:</comment>
  <info>int</info>  <strong>$length</strong>  The length of the random string that should be returned in bytes; must be <return>1</return> or
                greater.

<comment>Return:</comment>
  <info>string</info>  A string containing the requested number of cryptographically secure random bytes.

<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>
  Get a cryptographically secure, uniformly selected integer
  
  Generates a uniformly selected integer between the given minimum and maximum.
  
  The randomness generated by this function is suitable for all applications, including the
  generation of long-term secrets, such as encryption keys.
  
  As fontes de aleatoriedade usadas para esta função são as seguintes:
  
  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 se CCRandomGenerateBytes estiver disponível em
  tempo de compilação): 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
  
  Qualquer combinação de sistema operacional e versão do PHP não mencionada anteriormente:
  /dev/urandom
  
  Se nenhuma das fontes estiver disponível ou todas falharem em gerar aleatoriedade, então uma
  exceção <class>Random\RandomException</class> será lançada.
  
  Embora esta função tenha sido adicionada ao PHP no PHP 7.0, uma implementação no espaço do usuário
  está disponível para o PHP 5.2 ao 5.6, inclusive.

<comment>Param:</comment>
  <info>int</info>  <strong>$min</strong>  The lowest value to be returned.
  <info>int</info>  <strong>$max</strong>  The highest value to be returned.

<comment>Return:</comment>
  <info>int</info>  A cryptographically secure, uniformly selected integer from the closed interval [<strong>$min</strong>, <strong>$max</strong>].
       Both <strong>$min</strong> and <strong>$max</strong> are possible return values.

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


id: range
type: function
doc:
<comment>Description:</comment>
  Cria um array contendo uma faixa de elementos
  
  Cria um array contendo uma faixa de elementos.
  
  Se ambos <strong>$start</strong> e <strong>$end</strong> forem <info>string</info>s, e <strong>$step</strong> é <info>int</info>, o array produzido será uma sequência de
  bytes. Em outros casos, o array produzido será uma sequência de números.
  
  A sequência é crescente se <strong>$start</strong> é menor ou igual a <strong>$end</strong>. Em outros casos, a sequência é
  decrescente.

<comment>Param:</comment>
  <info>string|int|float</info>  <strong>$start</strong>  O primeiro valor da sequência.
  <info>string|int|float</info>  <strong>$end</strong>    O último valor possível da sequência.
  <info>int|float</info>         <strong>$step</strong>   <strong>$step</strong> indica o tamanho do deslocamento entre os os valores produzidos na
                            sequência.
                            
                            <strong>$step</strong> pode ser negativo em sequências decrescentes.
                            
                            Se <strong>$step</strong> é um <info>float</info> sem uma parte fracional, ele é interpretado como
                            <info>int</info>.

<comment>Return:</comment>
  <info>array</info>  Retorna uma sequência de elementos como um <info>array</info> onde o primeiro elemento é <strong>$start</strong>
         progredindo a até <strong>$end</strong>, com cada valor da sequência separados por <strong>$step</strong> valores.
         
         O último elemento do array retornado pode ser <strong>$end</strong> ou um valor anterior da sequência, a
         depender do valor de <strong>$step</strong>.
         
         Se ambos <strong>$start</strong> e <strong>$end</strong> são <info>string</info>s, e <strong>$step</strong> é <info>int</info>, o array produzido será uma sequẽncia de
         bytes, geralmente as letras latinas no padrão ASCII.
         
         Se <strong>$start</strong>, <strong>$end</strong>, ou <strong>$step</strong> forem <info>float</info>, o array produzido será uma sequẽncia de <info>float</info>s.
         
         Em outros casos, o array produzido será uma sequência de <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>
  Cache hits and misses for the URL wrapper
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

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


id: rawurldecode
type: function
doc:
<comment>Description:</comment>
  Decodifica uma URL
  
  Retorna uma string em que as sequências com o sinal porcento (<return>%</return>) seguida por dois dígitos
  hexadecimais são substituídas pelos caracteres correspondentes.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  A URL a ser decodificada.

<comment>Return:</comment>
  <info>string</info>  Retorna a URL decodificada, como uma string.

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


id: rawurlencode
type: function
doc:
<comment>Description:</comment>
  Codifica uma URL de acordo com RFC 3986
  
  Codifica uma dada string de acordo com RFC 3986.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  A URL a ser codificada.

<comment>Return:</comment>
  <info>string</info>  Retorna uma string na qual todos os caracteres alfa-numericos com exceção de <return>-_.~</return> são
          substituidos com um sinal de porcento (<return>%</return>) seguido de dois digitos hexadecimais. Esta
          codificação esta descrita na RFC 3986 para proteger caracteres de serem interpretados como
          delimitadores de URL, e para proteger URLs de serem embaralhadas por transmissão em meios
          com conversões de caracteres (como alguns sistemas de email).

<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>
  Sinônimo de exif_read_data
  
  Esta função é um apelido para:  <strong>exif_read_data()</strong>.


id: readdir
type: function
doc:
<comment>Description:</comment>
  Lê entrada do manipulador do diretório
  
  Retorna o nome da próxima entrada do diretório. As entradas são retornadas na ordem em que estão
  armazenadas no sistema de arquivos.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$dir_handle</strong>  O manipulador de diretório do tipo <info>resource</info> previamente aberto com
                              <strong>opendir()</strong>. Se o manipulador de diretório não for especificado, o
                              último manipulador aberto por <strong>opendir()</strong> será o assumido.

<comment>Return:</comment>
  <info>string|false</info>  Retorna o nome do arquivo em caso de sucesso ou <info>false</info> em caso de falha.
                
                Esta função pode
                retornar o valor booleano <info>false</info>, mas também pode retornar um valor não booleano que
                pode ser
                avaliado como <info>false</info>. Leia a seção sobre Booleanos para mais
                informações. Use o operador
                === para testar o valor retornado por esta
                função.

<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>
  Exibe o conteúdo de um arquivo
  
  Lê um arquivo e escreve o seu conteúdo para o buffer de saída.

<comment>Param:</comment>
  <info>string</info>         <strong>$filename</strong>          O nome do arquivo a ser lido.
  <info>bool</info>           <strong>$use_include_path</strong>  Pode-se usar o segundo parâmetro opcional e configurá-lo para
                                    <info>true</info>, se for desejado procurar o arquivo no include_path também.
  <info>resource|null</info>  <strong>$context</strong>           Um <info>resource</info> de
                                    contexto de stream.

<comment>Return:</comment>
  <info>int|false</info>  Retorna o número de bytes lidos do arquivo em caso de sucesso, ou <info>false</info> em caso de
             falha

<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>
  Output a gz-file
  
  Reads a file, decompresses it and writes it to standard output.
  
  <strong>readgzfile()</strong> can be used to read a file which is not in gzip format; in this case <strong>readgzfile()</strong>
  will directly  read from the file without decompression.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>          The file name. This file will be opened from the filesystem and its
                             contents written to standard output.
  <info>int</info>     <strong>$use_include_path</strong>  You can set this optional parameter to <return>1</return>, if you want to search for the
                             file in the include_path too.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of (uncompressed) bytes read from the file on success, ou <info>false</info> em
             caso de falha

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


id: readline
type: function
doc:
<comment>Description:</comment>
  Lê uma linha
  
  Lê uma única linha do usuário. Esta linha precisa ser adicionada manualmente ao histórico usando
  <strong>readline_add_history()</strong>.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$prompt</strong>  Pode-se especificar uma string que será o prompt para o usuário.

<comment>Return:</comment>
  <info>string|false</info>  Retorna uma string do usuário. A linha retornada tem o caractere de nova linha
                removido do final. Se não houver mais dados para ler, então <info>false</info> é retornado.


id: readline_add_history
type: function
doc:
<comment>Description:</comment>
  Adiciona uma linha ao histórico
  
  Esta função adiciona uma linha ao histórico da linha de comando.

<comment>Param:</comment>
  <info>string</info>  <strong>$prompt</strong>  A linha a ser adicionada ao histórico.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: readline_callback_handler_install
type: function
doc:
<comment>Description:</comment>
  Inicializa a interface de chamada de retorno e o terminal de readline, mostra o prompt e retorna
  imediatamente
  
  Configura uma interface de chamada de retorno readline, mostra o <strong>$prompt</strong> e retorna imediatamente.
  Chamar esta função duas vezes sem remover a interface de chamada anterior irá automaticamente e
  convenientemente sobrescrever a interface antiga.
  
  O recurso de chamada de retorno é útil quando combinada com <strong>stream_select()</strong> já que permite as it
  allows intercalação de E/S e de entrada de usuário, diferentemente da função <strong>readline()</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$prompt</strong>    A mensagem do prompt.
  <info>callable</info>  <strong>$callback</strong>  A função definida em <strong>$callback</strong> leva um parâmetro; a entrada do usuário
                       retornada.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do
  terminal
  
  Remove um manipulador de chamada de retorno previamente instalado e restaura a configuração do
  terminal.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> se o manipulador de chamada de retorno previamente instalado for removido, ou
        <info>false</info> se ele não puder ser encontrado.

<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>
  Lê um caractere e informa a interface de chamada de retorno de readline quando uma linha é
  recebida
  
  Lê um caractere de entrada do usuário. Quando uma linha é recebida, esta função informa a
  interface de chamada de retorno de readline, instalada usando <strong>readline_callback_handler_install()</strong>,
  que uma linha está pronta para entrada.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.

<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>
  Limpa o histórico
  
  Esta função limpa todo o histórico da linha de comando.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: readline_completion_function
type: function
doc:
<comment>Description:</comment>
  Registra uma função de completamento
  
  Esta função registra uma função de completamento. Este é o mesmo tipo de funcionamento ao
  pressionar a tecla de tabulação enquanto estiver usando o Bash.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  Deve-se usar o nome de uma função existente que aceite uma linha de comando
                       parcial e retorne uma matriz de combinações possíveis.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: readline_info
type: function
doc:
<comment>Description:</comment>
  Obtém/Define várias variáveis internas de readline
  
  Obtém ou define várias variáveis internas da readline.

<comment>Param:</comment>
  <info>string|null</info>           <strong>$var_name</strong>  Um nome de variável.
  <info>int|string|bool|null</info>  <strong>$value</strong>     Se fornecido, este será o novo valor.

<comment>Return:</comment>
  <info>mixed</info>  Se for utilizada sem parâmetros, esta função retorna uma matriz de valores para as
         configurações que a readline usa. Os elementos serão indexados pelos seguintes valores:
         <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>, e <return>terminal_name</return>. O <info>array</info> conterá apenas os elementos suportados pela
         biblioteca usada para construir a extensão readline.
         
         Se for utilizada com um ou dois parâmetros, o antigo valor é retornado.


id: readline_list_history
type: function
doc:
<comment>Description:</comment>
  Lista o histórico
  
  Obtém o histório completo da linha de comando.

<comment>Return:</comment>
  <info>array</info>  Retorna um array do histórico completo da linha de comando. Os elementos são indexados por
         inteiros iniciando de zero.


id: readline_on_new_line
type: function
doc:
<comment>Description:</comment>
  Informa à readline que o cursor se moveu para uma nova linha
  
  Informa à readline que o cursor se moveu para uma nova linha.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.


id: readline_read_history
type: function
doc:
<comment>Description:</comment>
  Lê o histórico
  
  Esta função lê o histórico de comandos de um arquivo.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  Caminho para o nome do arquivo contendo o histórico de comando.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: readline_redisplay
type: function
doc:
<comment>Description:</comment>
  Redesenha a tela
  
  Redesenha readline para atualizar a tela.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.


id: readline_write_history
type: function
doc:
<comment>Description:</comment>
  Grava o histórico
  
  Esta função escreve o histórico dos comandos em um arquivo.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  Caminho para salvar o arquivo.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: readlink
type: function
doc:
<comment>Description:</comment>
  Retornar o alvo de uma ligação simbólica
  
  <strong>readlink()</strong> faz o mesmo que a função do C.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  O caminho para a ligação simbólica.

<comment>Return:</comment>
  <info>string|false</info>  Retorna o conteúdo do caminho da ligação simbólica ou <info>false</info> em erro.
                
                Esta função falha se <strong>$path</strong> não é um symlink, exceto no Windows, onde o caminho
                normalizado é retornado.

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


id: realpath
type: function
doc:
<comment>Description:</comment>
  Retorna o path absoluto canonizado
  
  <strong>realpath()</strong> expande todas as ligações simbólicas e resolve referências para <return>/./</return>, <return>/../</return> e caracteres
  <return>/</return> extras no caminho <strong>$path</strong>, e retorna o caminho absoluto canonizado.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  O caminho a ser verificado.  Ainda que caminho precise ser fornecido, o valor pode
                 ser uma string vazia. Neste caso, o valor é interpretado como o diretório atual.
                 
                 Ainda que caminho precise ser fornecido, o valor pode ser uma string vazia. Neste
                 caso, o valor é interpretado como o diretório atual.

<comment>Return:</comment>
  <info>string|false</info>  Retorna o caminho absouto canonizado em caso de sucesso. O caminho resultante não
                conterá nenhuma ligação simbólica ou componentes <return>/./</return> e <return>/../</return>. Delimitadores no final
                da string, como <return>\</return> e <return>/</return>, também são removidos.
                
                <strong>realpath()</strong> retorna <info>false</info> em caso de falha, por exemplo, se o caminho não existir.
                
                O script em execução deve ter permissões de executável em todos os diretórios na
                hierarquia, caso contrário <strong>realpath()</strong> retornará <info>false</info>.
                
                Para sistemas de arquivos insensíveis a maiúsculas/minúsculas, <strong>realpath()</strong> pode ou
                não normalizar a forma maiúscula/minúscula do caractere.
                
                A função <strong>realpath()</strong> não funcionará para um arquivo que estiver dentro de um Phar
                pois este caminho será virtual, e não real.
                
                No Windows, junções e ligações simbólicas a diretórios somente são expandidas em um
                nível.
                
                Como o tipo inteiro do PHP possui sinal e muitas plataformas usam números inteiros
                de 32 bits, algumas funções do sistema de arquivos podem retornar resultados
                inesperados para arquivos maiores que 2GB.

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


id: realpath_cache_get
type: function
doc:
<comment>Description:</comment>
  Obter entradas de cache do caminho absoluto
  
  Obtém o conteúdo do cache do caminho absoluto.

<comment>Return:</comment>
  <info>array</info>  Retorna um array com as entradas do caminho absoluto. As chaves são o caminho absoluto, e
         os valores são arrays de informações dos dados, contendo o caminho absoluto, data de
         expiração, e outras informações mantidas no cache.

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


id: realpath_cache_size
type: function
doc:
<comment>Description:</comment>
  Obter o tamanho do cache do caminho absoluto
  
  Obtém a quantidade de memória utilizada pelo cache do caminho absoluto.

<comment>Return:</comment>
  <info>int</info>  Retorna quanta memória o cache do caminho absoluto está utilizando.

<comment>See Also:</comment>
   * <strong>realpath_cache_get()</strong>
   * 
     As opções de configurações
     de realpath_cache_size
    


id: recode
type: function
doc:
<comment>Description:</comment>
  Sinônimo de recode_string
  
  Esta função é um apelido para:  <strong>recode_string()</strong>.


id: recode_file
type: function
doc:
<comment>Description:</comment>
  Recode from file to file according to recode request
  
  Recode the file referenced by file handle <strong>$input</strong> into the file referenced by file handle <strong>$output</strong>
  according to the recode <strong>$request</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$request</strong>  The desired recode request type
  <info>resource</info>  <strong>$input</strong>    A local file handle <info>resource</info> for  the <strong>$input</strong>
  <info>resource</info>  <strong>$output</strong>   A local file handle <info>resource</info> for  the <strong>$output</strong>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>false</info>, if unable to comply, <info>true</info> otherwise.

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


id: recode_string
type: function
doc:
<comment>Description:</comment>
  Recode a string according to a recode request
  
  Recode the string <strong>$string</strong> according to the recode request <strong>$request</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$request</strong>  The desired recode request type
  <info>string</info>  <strong>$string</strong>   The <info>string</info> to be recoded

<comment>Return:</comment>
  <info>string</info>  Returns the recoded <info>string</info> or <info>false</info>, if unable to  perform the recode request.

<comment>See Also:</comment>
   * 
     The GNU Recode documentation of your installation for detailed 
     instructions about recode requests.
    
   * <strong>mb_convert_encoding()</strong>
   * UConverter::transcode
   * <strong>iconv()</strong>


id: register_shutdown_function
type: function
doc:
<comment>Description:</comment>
  Register a function for execution on shutdown
  
  Registers a <strong>$callback</strong> to be executed after script execution finishes or <strong>exit()</strong> is called.
  
  Multiple calls to <strong>register_shutdown_function()</strong> can be made, and each will be called in the same
  order as they were registered. If you call <strong>exit()</strong> within one registered shutdown function,
  processing will stop completely and no other registered shutdown functions will be called.
  
  Shutdown functions may also call <strong>register_shutdown_function()</strong> themselves to add a shutdown
  function to the end of the queue.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The shutdown callback to register.
                       
                       The shutdown callbacks are executed as the part of the request, so it's
                       possible to send output from them and access output buffers.
  <info>mixed</info>     <strong>$args</strong>      It is possible to pass parameters to the shutdown function by passing
                       additional parameters.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.

<comment>See Also:</comment>
   * auto_append_file
   * <strong>exit()</strong>
   * <strong>fastcgi_finish_request()</strong>
   * The section on connection handling


id: register_tick_function
type: function
doc:
<comment>Description:</comment>
  Register a function for execution on each tick
  
  Registers the given <strong>$callback</strong> to be executed when a tick is called.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The function to register.
  <info>mixed</info>     <strong>$args</strong>      

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: rename
type: function
doc:
<comment>Description:</comment>
  Renomeia um arquivo ou diretório
  
  Tenta renomear <strong>$from</strong> para <strong>$to</strong>, movendo entre diretórios se necessário. Se o arquivo <strong>$to</strong> já
  existir, ele será sobrescrito. Se renomeando um diretório e <strong>$to</strong> já existir, esta função emite um
  warning.

<comment>Param:</comment>
  <info>string</info>         <strong>$from</strong>     O nome anterior.
                           
                           O empacotador utilizado em <strong>$from</strong> precisa ser o mesmo empacotador
                           utilizado em <strong>$to</strong>.
  <info>string</info>         <strong>$to</strong>       O novo nome.  No Windows, se <strong>$to</strong> já existir, ele precisa ter permissão de
                           escrita. Se não a função <strong>rename()</strong> falhará e emitirá um <info>E_WARNING</info>.
                           
                           No Windows, se <strong>$to</strong> já existir, ele precisa ter permissão de escrita. Se
                           não a função <strong>rename()</strong> falhará e emitirá um <info>E_WARNING</info>.
  <info>resource|null</info>  <strong>$context</strong>  Um <info>resource</info> de
                           contexto de stream.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: reset
type: function
doc:
<comment>Description:</comment>
  Faz o ponteiro interno de um array apontar para o seu primeiro elemento
  
  <strong>reset()</strong> retrocede o ponteiro interno de <strong>$array</strong> para o primeiro elemento e retorna o valor do
  primeiro elemento do array.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>  O array de entrada.

<comment>Return:</comment>
  <info>mixed</info>  Retorna o valor do primeiro elemento do array, ou <info>false</info> se o array estiver vazio.
         
         Esta função pode
         retornar o valor booleano <info>false</info>, mas também pode retornar um valor não booleano que pode
         ser
         avaliado como <info>false</info>. Leia a seção sobre Booleanos para mais
         informações. Use o operador
         === para testar o valor retornado por esta
         função.

<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>
  Restaura a função anterior de gerenciamento de erro
  
  Usada após mudar a função que gerencia os erros usando <strong>set_error_handler()</strong>, para reverter para a
  função anterior (que pode ser a função interna ou outra função definida pelo usuário).

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <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>
  Restores the previously defined exception handler function
    
  
  Used after changing the exception handler function using <strong>set_exception_handler()</strong>, to revert to the
  previous exception handler (which could be the built-in or a user defined function).

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <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>
  Restaura o valor da opção de configuração include_path
  
  Restaura a opção de configuração include_path de volta ao seu valor original master como definido
  no php.ini

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.

<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>
  Retrocede a posição de um ponteiro de arquivos
  
  Define o indicador de posição de arquivo de <strong>$stream</strong> para o início do fluxo do arquivo.
  
  Se o arquivo foi aberto no modo de acréscimo ("a" ou "a+"), qualquer dado que for escrito no
  arquivo será sempre acrescentado, independente da posição do ponteiro.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com
                     sucesso por <strong>fopen()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: rewinddir
type: function
doc:
<comment>Description:</comment>
  Retroceder o manipulador de diretório
  
  Reinicia o fluxo do diretório indicado por <strong>$dir_handle</strong> para o início do diretório.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$dir_handle</strong>  O manipulador de diretório do tipo <info>resource</info> aberto previamente com
                              <strong>opendir()</strong>. Se o manipulador de diretório não for especificado, o
                              último manipulador aberto por <strong>opendir()</strong> será o assumido.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.


id: rmdir
type: function
doc:
<comment>Description:</comment>
  Remove um diretório
  
  Tenta remover o diretório com o nome de <strong>$directory</strong>. O diretório deve estar vazio e as permissões
  relevantes devem autorizar a operação. Um erro de nível <info>E_WARNING</info> será gerado em caso de falha.

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>  Caminho para o diretório.
  <info>resource|null</info>  <strong>$context</strong>    Um <info>resource</info> de
                             contexto de stream.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: rnp_backend_string
type: function
doc:
<comment>Description:</comment>
  Return cryptographic backend library name

<comment>Return:</comment>
  <info>string</info>  Backend name string. Currently supported backends are "Botan" and "OpenSSL".


id: rnp_backend_version
type: function
doc:
<comment>Description:</comment>
  Return cryptographic backend library version

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


id: rnp_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypt PGP message
  
  Private keys used for decryption should be loaded into the FFI object before calling this
  function. If password encryption was used, then password provider should be set by calling
  <strong>rnp_ffi_set_pass_provider()</strong>.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>    O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$input</strong>  Encrypted message.

<comment>Return:</comment>
  <info>string|false</info>  Decrypted message on success ou <info>false</info> em caso de falha.


id: rnp_dump_packets
type: function
doc:
<comment>Description:</comment>
  Dump OpenPGP packets stream information in humand-readable format

<comment>Param:</comment>
  <info>string</info>  <strong>$input</strong>  Input string containing OpenPGP data, either in binary or ASCII-armored format.
  <info>int</info>     <strong>$flags</strong>  See <info>RNP_DUMP_*</info> predefined constants.

<comment>Return:</comment>
  <info>string|false</info>  Text describing packet sequence ou <info>false</info> em caso de falha.


id: rnp_dump_packets_to_json
type: function
doc:
<comment>Description:</comment>
  Dump OpenPGP packets stream information to the JSON string

<comment>Param:</comment>
  <info>string</info>  <strong>$input</strong>  Input string containing OpenPGP data, either in binary or ASCII-armored format.
  <info>int</info>     <strong>$flags</strong>  See <info>RNP_JSON_DUMP_*</info> predefined constants.

<comment>Return:</comment>
  <info>string|false</info>  JSON string with dump ou <info>false</info> em caso de falha.


id: rnp_ffi_create
type: function
doc:
<comment>Description:</comment>
  Create the top-level object used for interacting with the library

<comment>Param:</comment>
  <info>string</info>  <strong>$pub_format</strong>  the format of the public keyring, RNP_KEYSTORE_GPG or other RNP_KEYSTORE_*
                       constant.
  <info>string</info>  <strong>$sec_format</strong>  the format of the secret keyring, RNP_KEYSTORE_GPG or other RNP_KEYSTORE_*
                       constant

<comment>Return:</comment>
  <info>RnpFFI|false</info>  Returns <info>RnpFFI</info> object on success ou <info>false</info> em caso de falha.


id: rnp_ffi_destroy
type: function
doc:
<comment>Description:</comment>
  Destroy the top-level object used for interacting with the library

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>  O objeto FFI retornado por rnp_ffi_create.

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


id: rnp_ffi_set_pass_provider
type: function
doc:
<comment>Description:</comment>
  Set password provider callback function
  
  Sets password provider function. This function can ask for the password on a standard input (if
  PHP script is executed in a command line environment), display GUI dialog or provide password in
  any other possible ways. Requested passwords are used to encrypt or decrypt secret keys or perform
  symmetric encryption/decryption operations.

<comment>Param:</comment>
  <info>RnpFFI</info>    <strong>$ffi</strong>                O objeto FFI retornado por rnp_ffi_create.
  <info>callable</info>  <strong>$password_callback</strong>  The function that is to be called for every password request.  It
                                has the following signature:
                                <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> - The key fingerprint, if any. Can be empty.<return>$pgp_context</return> -
                                String describing why the key is being requested.<return>$password</return> -
                                Password string reference where provided password should be stored
                                to. Callback function should return <info>true</info> if password was
                                successfully set ou <info>false</info> em caso de falha.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success ou <info>false</info> em caso de falha.


id: rnp_import_keys
type: function
doc:
<comment>Description:</comment>
  Import keys from PHP string to the keyring and receive JSON describing new/updated keys

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>    O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$input</strong>  OpenPGP packets containing key(s) to be loaded. Can be either binary or ASCII
                  armored.
  <info>int</info>     <strong>$flags</strong>  See <info>RNP_LOAD_SAVE_*</info> predefined constants.

<comment>Return:</comment>
  <info>string|false</info>  JSON string with information about new and updated keys on success ou <info>false</info> em caso
                de falha.


id: rnp_import_signatures
type: function
doc:
<comment>Description:</comment>
  Import standalone signatures to the keyring and receive JSON describing updated keys

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>    O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$input</strong>  OpenPGP packets containing signatures to be imported. Can be either binary or
                  ASCII armored.
  <info>int</info>     <strong>$flags</strong>  Currently must be 0.

<comment>Return:</comment>
  <info>string|false</info>  JSON string with information about updated keys on success ou <info>false</info> em caso de
                falha.


id: rnp_key_export
type: function
doc:
<comment>Description:</comment>
  Export a key

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>  Key fingerprint.
  <info>int</info>     <strong>$flags</strong>   See <info>RNP_KEY_EXPORT_*</info> predefined constants (except <info>RNP_KEY_EXPORT_BASE64</info>).

<comment>Return:</comment>
  <info>string|false</info>  OpenPGP packets of exported key (binary or ASCII-armored) on success ou <info>false</info> em
                caso de falha.


id: rnp_key_export_autocrypt
type: function
doc:
<comment>Description:</comment>
  Export minimal key for autocrypt feature (just 5 packets: key, uid, signature,
     encryption subkey, signature)

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>        O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>     Primary key fingerprint.
  <info>string</info>  <strong>$subkey_fp</strong>  Subkey to export. Can be an empty string to pick the first suitable subkey.
  <info>string</info>  <strong>$uid</strong>        User ID to export. Can be an empty string if exported key has only one uid.
  <info>int</info>     <strong>$flags</strong>      Only <info>RNP_KEY_EXPORT_BASE64</info> is currently supported. Enabling it would export
                      base64-encoded key data instead of binary.

<comment>Return:</comment>
  <info>string|false</info>  OpenPGP packets of exported key on success ou <info>false</info> em caso de falha.


id: rnp_key_export_revocation
type: function
doc:
<comment>Description:</comment>
  Generate and export primary key revocation signature
  
  Note: to revoke a key you'll need to import this signature into the keystore or use
  <strong>rnp_key_revoke()</strong> function.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>   Key fingerprint of the primary key to be revoked.
  <info>int</info>     <strong>$flags</strong>    <info>RNP_KEY_EXPORT_ARMORED</info> or 0.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Exported revocation signature on success ou <info>false</info> em caso de falha.


id: rnp_key_get_info
type: function
doc:
<comment>Description:</comment>
  Get information about the key

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>  Key fingerprint.

<comment>Return:</comment>
  <info>array|false</info>  An associative array with information about the key ou <info>false</info> em caso de falha.


id: rnp_key_remove
type: function
doc:
<comment>Description:</comment>
  Remove a key from keyring(s)
  
  Note: you need to call <strong>rnp_save_keys()</strong> to write updated keyring(s) out.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>  Key fingerprint.
  <info>int</info>     <strong>$flags</strong>   See <info>RNP_KEY_REMOVE_*</info> constants. Flag <info>RNP_KEY_REMOVE_SUBKEYS</info> will work only for
                   the primary key and will remove all of its subkeys as well.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success ou <info>false</info> em caso de falha.


id: rnp_key_revoke
type: function
doc:
<comment>Description:</comment>
  Revoke a key or subkey by generating and adding revocation signature
  
  Note: you need to call <strong>rnp_save_keys()</strong> to write updated keyring(s) out.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$key_fp</strong>   Key fingerprint.
  <info>int</info>     <strong>$flags</strong>    Currently must be 0.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success ou <info>false</info> em caso de falha.


id: rnp_list_keys
type: function
doc:
<comment>Description:</comment>
  Enumerate all keys present in a keyring by specified identifer type

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>              O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$identifier_type</strong>  Key identifier type ("userid", "keyid", "grip", "fingerprint").

<comment>Return:</comment>
  <info>array|false</info>  An associative array where key is an identifier string and value is a PGP key
               fingerprint ou <info>false</info> em caso de falha.


id: rnp_load_keys
type: function
doc:
<comment>Description:</comment>
  Load keys from PHP string
  
  Note that for G10, the input must be a directory (which must already exist).

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>  O formato de chave dos dados (GPG, KBX, G10).
  <info>string</info>  <strong>$input</strong>   OpenPGP packets containing key(s) to be loaded. Can be either binary or ASCII
                   armored.
  <info>int</info>     <strong>$flags</strong>   Consulte a descrição das flags RNP_LOAD_SAVE_*.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success ou <info>false</info> em caso de falha.


id: rnp_load_keys_from_path
type: function
doc:
<comment>Description:</comment>
  Load keys from specified path
  
  Note that for G10, the input must be a directory (which must already exist).

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>         O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>      O formato de chave dos dados (GPG, KBX, G10).
  <info>string</info>  <strong>$input_path</strong>  file or directory containing the keys.
  <info>int</info>     <strong>$flags</strong>       Consulte a descrição das flags RNP_LOAD_SAVE_*.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success ou <info>false</info> em caso de falha.


id: rnp_locate_key
type: function
doc:
<comment>Description:</comment>
  Search for the key
  
  Note: only valid userids are checked while searching by userid.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>              O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$identifier_type</strong>  Identifier type string: "userid", "keyid", "fingerprint", "grip".
  <info>string</info>  <strong>$identifier</strong>       PGP User ID (name and email) for "userid" type, hexadecimal string that
                            represents key id, fingerprint or key grip correspondingly.

<comment>Return:</comment>
  <info>string|false</info>  Returns hexadecimal fingerprint of the key found on success ou <info>false</info> em caso de
                falha.


id: rnp_op_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt message

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>                O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$message</strong>            Message to be encrypted.
  <info>array</info>   <strong>$recipient_keys_fp</strong>  Array with fingerprints of recipient's keys. At least one key must be
                              present.
  <info>array</info>   <strong>$options</strong>            An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Encrypted data on success ou <info>false</info> em caso de falha.


id: rnp_op_generate_key
type: function
doc:
<comment>Description:</comment>
  Generate key

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$userid</strong>   PGP User ID - text that is intended to represent the name and email address of
                    the key holder.
  <info>string</info>  <strong>$key_alg</strong>  Primary key algorithm (i.e. 'RSA', 'DSA', etc).
  <info>string</info>  <strong>$sub_alg</strong>  Subkey algorithm. If not set, subkey will not be generated.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Fingerprint of the generated primary key ou <info>false</info> em caso de falha. This fingerprint
                can be used later to reference the key in sign and encrypt operations. The key data
                is stored in FFI memory context and can be saved using <strong>rnp_save_keys()</strong> or
                <strong>rnp_save_keys_to_path()</strong>.


id: rnp_op_sign
type: function
doc:
<comment>Description:</comment>
  Perform signing operation on a binary data, return embedded signature(s)

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>     Data to be signed.
  <info>array</info>   <strong>$keys_fp</strong>  Array with key fingerprints. At least one key must be provided. Keys should be
                    present in <strong>$ffi</strong>.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Data with embedded signature(s) on success ou <info>false</info> em caso de falha.


id: rnp_op_sign_cleartext
type: function
doc:
<comment>Description:</comment>
  Perform signing operation on a textual data, return cleartext signed message

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>     Data to be signed.
  <info>array</info>   <strong>$keys_fp</strong>  Array with key fingerprints. At least one key must be provided. Keys should be
                    present in <strong>$ffi</strong>.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Cleartext signed message containing source data with additional headers and
                ASCII-armored signature on success ou <info>false</info> em caso de falha.


id: rnp_op_sign_detached
type: function
doc:
<comment>Description:</comment>
  Perform signing operation, return detached signature(s)

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>      O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>     Data to be signed.
  <info>array</info>   <strong>$keys_fp</strong>  Array with key fingerprints. At least one key must be provided. Keys should be
                    present in <strong>$ffi</strong>.
  <info>array</info>   <strong>$options</strong>  An associative array with options.

<comment>Return:</comment>
  <info>string|false</info>  Detached signature(s) data on success ou <info>false</info> em caso de falha.


id: rnp_op_verify
type: function
doc:
<comment>Description:</comment>
  Verify embedded or cleartext signatures

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>   O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>  Signed data.

<comment>Return:</comment>
  <info>array|false</info>  An associative array with information about verification results ou <info>false</info> em caso de
               falha.
               
               "signatures" sub-array.


id: rnp_op_verify_detached
type: function
doc:
<comment>Description:</comment>
  Verify detached signatures

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>        O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$data</strong>       Source data.
  <info>string</info>  <strong>$signature</strong>  Detached signature data.

<comment>Return:</comment>
  <info>array|false</info>  An associative array with information about verification results ou <info>false</info> em caso de
               falha.
               
               "signatures" sub-array.


id: rnp_save_keys
type: function
doc:
<comment>Description:</comment>
  Save keys to PHP string
  
  Note that for G10, the output must be a directory (which must already exist).

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>  O formato de chave dos dados (GPG, KBX, G10).
  <info>string</info>  <strong>$output</strong>  key packets will be saved to the string referenced by <strong>$output</strong>.
  <info>int</info>     <strong>$flags</strong>   Consulte a descrição das flags RNP_LOAD_SAVE_*.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success ou <info>false</info> em caso de falha.


id: rnp_save_keys_to_path
type: function
doc:
<comment>Description:</comment>
  Save keys to specified path
  
  Saves keys present in the FFI object (loaded or generated) to the specified file or directory.

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>          O objeto FFI retornado por rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>       O formato de chave dos dados (GPG, KBX, G10).
  <info>string</info>  <strong>$output_path</strong>  File or directory path where keys should be saved to.
  <info>int</info>     <strong>$flags</strong>        Consulte a descrição das flags RNP_LOAD_SAVE_*.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success ou <info>false</info> em caso de falha.


id: rnp_supported_features
type: function
doc:
<comment>Description:</comment>
  Get supported features in JSON format
  
  Get the JSON formatted string containing array of supported rnp feature values (algorithms,
  curves, etc) by type.

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>  See RNP_FEATURE_* constants for supported values.

<comment>Return:</comment>
  <info>string|false</info>  String containing JSON formatted array of supported algorithms, curves, etc ou <info>false</info>
                em caso de falha.


id: rnp_version_string
type: function
doc:
<comment>Description:</comment>
  RNP library version

<comment>Return:</comment>
  <info>string</info>  Returns RNP library version string.


id: rnp_version_string_full
type: function
doc:
<comment>Description:</comment>
  Full version string of RNP library

<comment>Return:</comment>
  <info>string</info>  Returns full version string of RNP library.


id: round
type: function
doc:
<comment>Description:</comment>
  Arredonda um float
  
  Retorna um valor arredondado de <strong>$num</strong> com a precisão especificada em <strong>$precision</strong> (número de dígitos
  depois do ponto decimal). <strong>$precision</strong> também pode ser negativo ou zero (padrão).

<comment>Param:</comment>
  <info>int|float</info>  <strong>$num</strong>        Valor a ser arredondado.
  <info>int</info>        <strong>$precision</strong>  O número opcional de dígitos decimais para arredondar.
                         
                         Se <strong>$precision</strong> for positivo, <strong>$num</strong> será arredondado para <strong>$precision</strong> de
                         dígitos significativos depois do ponto decimal.
                         
                         Se <strong>$precision</strong> for negativo, <strong>$num</strong> será arredondado para <strong>$precision</strong> de
                         dígitos significativos depois do ponto decimal, isto é: o múltiplo mais
                         próximo de pow(10, -$precision), por exemplo: para um <strong>$precision</strong> de -1 <strong>$num</strong>
                         é arredondado para dezenas, para um <strong>$precision</strong> de -2 para centenas, etc.
  <info>int</info>        <strong>$mode</strong>       Use uma das seguintes constantes para especificar o modo ao qual o
                         arredondamento ocorre. ConstantesDescrição<info>PHP_ROUND_HALF_UP</info> Arredonda <strong>$num</strong>
                         para longe de zero quando ele está na metade do caminho, tornando 1.5 em 2
                         e -1.5 em -2. <info>PHP_ROUND_HALF_DOWN</info> Arredonda <strong>$num</strong> na direção de zero quando
                         ele está na metade do caminho, tornando 1.5 em 1 e -1.5 em -1.
                         <info>PHP_ROUND_HALF_EVEN</info> Arredonda <strong>$num</strong> em direção ao valor par mais próximo
                         quando ele está na metade do caminho, tornando ambos 1.5 e 2.5 em 2.
                         <info>PHP_ROUND_HALF_ODD</info> Arredonda <strong>$num</strong> em direção ao valor ímpar mais próximo
                         quando ele está na metade do caminho, tornando 1.5 em 1 e 2.5 em 3.

<comment>Return:</comment>
  <info>float</info>  O valor arredondado para <strong>$precision</strong> fornecido como um <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>
  Add tag retrieved in query
  
  Add an additional retrieved tag in subsequent queries.

<comment>Param:</comment>
  <info>int</info>  <strong>$tag</strong>  One of RPMTAG_* constant, see the rpminfo constants page.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: rpmdbinfo
type: function
doc:
<comment>Description:</comment>
  Get information from installed RPM
  
  Retrieve information about an installed package, from the system RPM database.

<comment>Param:</comment>
  <info>string</info>  <strong>$nevr</strong>  Name with optional epoch, version and release.
  <info>bool</info>    <strong>$full</strong>  If <info>true</info> all information headers for the file are retrieved, else only a minimal
                 set.

<comment>Return:</comment>
  <info>array|null</info>  An <info>array</info> of <info>array</info> of information or NULL on error.

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


id: rpmdbsearch
type: function
doc:
<comment>Description:</comment>
  Search RPM packages
  
  Search packages in the system RPM database.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  Value to search for.
  <info>int</info>     <strong>$rpmtag</strong>   Search criterion, one of RPMTAG_* constant, see the rpminfo constants page.
  <info>int</info>     <strong>$rpmmire</strong>  Pattern type, one of RPMMIRE_* constant, see the rpminfo constants page. When
                    \< 0 the criterion must equals the value, and database index is used if possible.
  <info>bool</info>    <strong>$full</strong>     If <info>true</info> all information headers for the file are retrieved, else only a minimal
                    set.

<comment>Return:</comment>
  <info>array|null</info>  An <info>array</info> of <info>array</info> of information or NULL on error.

<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>
  Get information from a RPM file
  
  Retrieve information about a local file, a RPM package.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>   Path of the RPM file.
  <info>bool</info>    <strong>$full</strong>   If <info>true</info> all information headers for the file are retrieved, else only a minimal
                  set.
  <info>string</info>  <strong>$error</strong>  If provided, will receive the possible error message, and will avoid a runtime
                  warning.

<comment>Return:</comment>
  <info>array|null</info>  An <info>array</info> of information or NULL on error.

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


id: rpmvercmp
type: function
doc:
<comment>Description:</comment>
  RPM version comparison
  
  Compare 2 RPM versions.

<comment>Param:</comment>
  <info>string</info>       <strong>$evr1</strong>      First epoch:version-release string
  <info>string</info>       <strong>$evr2</strong>      Second epoch:version-release string
  <info>string|null</info>  <strong>$operator</strong>  An optional operator. The possible operators are: <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> respectively.
                          
                          This parameter is case-sensitive, values should be lowercase.

<comment>Return:</comment>
  <info>int|bool</info>  Returns
            \< 0 if evr1 is less than evr2, &gt; 0 if evr1 is greater than evr2, and 0 if they are equal.
            
            When using the optional <strong>$operator</strong> argument, the function will return <info>true</info> if the
            relationship is the one specified by the operator, <info>false</info> otherwise.


id: rrd_create
type: function
doc:
<comment>Description:</comment>
  Creates rrd database file
  
  Creates the rdd database file.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Filename for newly created rrd file.
  <info>array</info>   <strong>$options</strong>   Options for rrd create - list of strings. See man page of rrd create for whole
                     list of options.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: rrd_error
type: function
doc:
<comment>Description:</comment>
  Gets latest error message
  
  Returns latest global rrd error message.

<comment>Return:</comment>
  <info>string</info>  Latest error message.


id: rrd_fetch
type: function
doc:
<comment>Description:</comment>
  Fetch the data for graph as array
  
  Gets data for graph output from RRD database file as array. This function has same result as
  <strong>rrd_graph()</strong>,  but fetched data are returned as array, no image file is created.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  RRD database file name.
  <info>array</info>   <strong>$options</strong>   Array of options for resolution specification.

<comment>Return:</comment>
  <info>array</info>  Returns information about retrieved graph data.


id: rrd_first
type: function
doc:
<comment>Description:</comment>
  Gets the timestamp of the first sample from rrd file
  
  Returns the first data sample from the specified RRA of the RRD file.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>      RRD database file name.
  <info>int</info>     <strong>$raaindex</strong>  The index number of the RRA that is to be examined. Default value is 0.

<comment>Return:</comment>
  <info>int</info>  Integer number of unix timestamp, ou <info>false</info> em caso de falha.


id: rrd_graph
type: function
doc:
<comment>Description:</comment>
  Creates image from a data
  
  Creates image for a particular data from RRD file.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The filename to output the graph to. This will generally end in either <return>.png</return>,
                     <return>.svg</return> or <return>.eps</return>, depending on the format you want to output.
  <info>array</info>   <strong>$options</strong>   Options for generating image. See man page of rrd graph for all possible
                     options. All options (data definitions, variable definitions, etc.) are
                     allowed.

<comment>Return:</comment>
  <info>array</info>  Array with information about generated image is returned, ou <info>false</info> em caso de falha.


id: rrd_info
type: function
doc:
<comment>Description:</comment>
  Gets information about rrd file
  
  Returns information about particular RRD database file.

<comment>Param:</comment>
  <info></info>  <strong>$file</strong>  RRD database file name.

<comment>Return:</comment>
  <info>array</info>  Array with information about requested RRD file, ou <info>false</info> em caso de falha.


id: rrd_last
type: function
doc:
<comment>Description:</comment>
  Gets unix timestamp of the last sample
  
  Returns the UNIX timestamp of the most recent update of the RRD database.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  RRD database file name.

<comment>Return:</comment>
  <info>int</info>  Integer as unix timestamp of the most recent data from the RRD database.


id: rrd_lastupdate
type: function
doc:
<comment>Description:</comment>
  Gets information about last updated data
  
  Gets array of the UNIX timestamp and the values stored for each date in the most recent update of
  the RRD database file.

<comment>Param:</comment>
  <info></info>  <strong>$file</strong>  RRD database file name.

<comment>Return:</comment>
  <info>array</info>  Array of information about last update, ou <info>false</info> em caso de falha.


id: rrd_restore
type: function
doc:
<comment>Description:</comment>
  Restores the RRD file from XML dump
  
  Restores the RRD file from the XML dump.

<comment>Param:</comment>
  <info>string</info>  <strong>$xml_file</strong>  XML filename with the dump of the original RRD database file.
  <info>string</info>  <strong>$rrd_file</strong>  Restored RRD database file name.
  <info>array</info>   <strong>$options</strong>   Array of options for restoring. See man page for rrd restore.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: rrd_tune
type: function
doc:
<comment>Description:</comment>
  Tunes some RRD database file header options
  
  Change some options in the RRD dabase header file. E.g. renames the source for the data etc.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  RRD database file name.
  <info>array</info>   <strong>$options</strong>   Options with RRD database file properties which will be changed. See rrd tune
                     man page for details.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: rrd_update
type: function
doc:
<comment>Description:</comment>
  Updates the RRD database
  
  Updates the RRD database file. The input data is time interpolated according to the properties of
  the RRD database file.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  RRD database file name. This database will be updated.
  <info>array</info>   <strong>$options</strong>   Options for updating the RRD database. This is list of strings. See man page of
                     rrd update for whole list of options.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: rrd_version
type: function
doc:
<comment>Description:</comment>
  Gets information about underlying rrdtool library
  
  Returns information about underlying rrdtool library.

<comment>Return:</comment>
  <info>string</info>  String with rrdtool version number e.g. "1.4.3".


id: rrd_xport
type: function
doc:
<comment>Description:</comment>
  Exports the information about RRD database
  
  Exports the information about RRD database file. This data can be converted to XML file via user
  space PHP script and then restored back as RRD database file.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  Array of options for the export, see rrd xport man page.

<comment>Return:</comment>
  <info>array</info>  Array with information about RRD database file, ou <info>false</info> em caso de falha.


id: rrdc_disconnect
type: function
doc:
<comment>Description:</comment>
  Close any outstanding connection to rrd caching daemon
  
  Close any outstanding connection to rrd caching daemon.
  
  This function is automatically called when the whole PHP process is terminated. It depends on used
  SAPI. For example, it's called automatically at the end of command line script.
  
  It's up user whether he wants to call this function at the end of every request or otherwise.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.


id: rsort
type: function
doc:
<comment>Description:</comment>
  Ordena um array em ordem descrescente
  
  Ordena <strong>$array</strong> pelos valores em ordem descrescente.
  
  Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0,
  sua ordem relativa no array ordenado era indefinida.
  
  Esta função
  atribui novas chaves aos elementos do <strong>$array</strong>.
  Ela removerá todas as chaves existentes que possam ter sido atribuídas, em vez
  de apenas reordenar as chaves.
  
  Redefine o ponteiro interno do array para o primeiro elemento.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  O array de entrada.
  <info>int</info>    <strong>$flags</strong>  O segundo parâmetro opcional <strong>$flags</strong> pode ser usado para modificar o comportamento
                 da ordenação usando estes valores:
                 
                 Flags dos tipos de ordenação: <info>SORT_REGULAR</info> - compara os elementos normalmente; os
                 detalhes são descritos na seção operadores de comparação<info>SORT_NUMERIC</info> - compara os
                 elementos numericamente<info>SORT_STRING</info> - compara os elementos como
                 strings<info>SORT_LOCALE_STRING</info> - compara os elementos como strings, com base na
                 localidade atual. A localidade pode ser alterada usando <strong>setlocale()</strong> <info>SORT_NATURAL</info> -
                 compara os elementos como strings usando "ordenação natural" como <strong>natsort()</strong>
                 <info>SORT_FLAG_CASE</info> - pode ser combinada (usando o operador bit a bit OR) com
                 <info>SORT_STRING</info> ou <info>SORT_NATURAL</info> para ordenar strings sem fazer distinção entre
                 maiúsculas e minúsculas
                 
                 <info>SORT_REGULAR</info> - compara os elementos normalmente; os detalhes são descritos na seção
                 operadores de comparação
                 
                 <info>SORT_NUMERIC</info> - compara os elementos numericamente
                 
                 <info>SORT_STRING</info> - compara os elementos como strings
                 
                 <info>SORT_LOCALE_STRING</info> - compara os elementos como strings, com base na localidade
                 atual. A localidade pode ser alterada usando <strong>setlocale()</strong>
                 
                 <info>SORT_NATURAL</info> - compara os elementos como strings usando "ordenação natural" como
                 <strong>natsort()</strong>
                 
                 <info>SORT_FLAG_CASE</info> - pode ser combinada (usando o operador bit a bit OR) com
                 <info>SORT_STRING</info> ou <info>SORT_NATURAL</info> para ordenar strings sem fazer distinção entre
                 maiúsculas e minúsculas

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <info>true</info>.

<comment>See Also:</comment>
   * <strong>sort()</strong>
   * <strong>arsort()</strong>
   * <strong>krsort()</strong>
   * Comparação entre as funções de ordenação de array


id: rtrim
type: function
doc:
<comment>Description:</comment>
  Retira espaço em branco (ou outros caracteres) do final de uma string
  
  Esta função retorna uma string com os espaços (ou outros caracteres) retirados do final de
  <strong>$string</strong>.
  
  Sem o segundo parâmetro, <strong>rtrim()</strong> irá retirar os seguintes caracteres:   " " (ASCII <return>32</return> (<return>0x20</return>)), um
  espaço comum.  "\t" (ASCII <return>9</return> (<return>0x09</return>)), uma tabulação.  "\n" (ASCII <return>10</return> (<return>0x0A</return>)), uma nova linha.
  "\r" (ASCII <return>13</return> (<return>0x0D</return>)), um retorno de carro(ENTER).  "\0" (ASCII <return>0</return> (<return>0x00</return>)), o byte <return>NULL</return>.  "\v"
  (ASCII <return>11</return> (<return>0x0B</return>)), uma tabulação vertical.
  
  " " (ASCII <return>32</return> (<return>0x20</return>)), um espaço comum.
  
  "\t" (ASCII <return>9</return> (<return>0x09</return>)), uma tabulação.
  
  "\n" (ASCII <return>10</return> (<return>0x0A</return>)), uma nova linha.
  
  "\r" (ASCII <return>13</return> (<return>0x0D</return>)), um retorno de carro(ENTER).
  
  "\0" (ASCII <return>0</return> (<return>0x00</return>)), o byte <return>NULL</return>.
  
  "\v" (ASCII <return>11</return> (<return>0x0B</return>)), uma tabulação vertical.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      A string de entrada.
  <info>string</info>  <strong>$characters</strong>  Pode-se também especificar outros caracteres que deseja-se que sejam
                       retirados, por meio do parâmetro <strong>$characters</strong>. Simplesmente liste todos os
                       caracteres que devem ser retirados. Com <return>..</return>, pode-se especificar um intervalo
                       de caracteres.

<comment>Return:</comment>
  <info>string</info>  Retorna a string modificada.

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


id: runkit7_constant_add
type: function
doc:
<comment>Description:</comment>
  Similar to define(), but allows defining in class definitions as well

<comment>Param:</comment>
  <info>string</info>  <strong>$constant_name</strong>  Name of constant to declare.  Either a string to indicate a global
                          constant, or <return>classname::constname</return> to indicate a class constant.
  <info>mixed</info>   <strong>$value</strong>          NULL, Bool, Long, Double, String, Array, or Resource value to store in the
                          new constant.
  <info>int</info>     <strong>$newVisibility</strong>  Visibility of the constant, for class constants. Public by default. One of
                          the <info>RUNKIT7_ACC_*</info> constants.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Redefine an already defined constant

<comment>Param:</comment>
  <info>string</info>  <strong>$constant_name</strong>   Constant to redefine.  Either the name of a global constant, or
                           <return>classname::constname</return> indicating class constant.
  <info>mixed</info>   <strong>$value</strong>           Value to assign to the constant.
  <info>int</info>     <strong>$new_visibility</strong>  The new visibility of the constant, for class constants. Unchanged by
                           default. One of the <info>RUNKIT7_ACC_*</info> constants.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: runkit7_constant_remove
type: function
doc:
<comment>Description:</comment>
  Remove/Delete an already defined constant

<comment>Param:</comment>
  <info>string</info>  <strong>$constant_name</strong>  Name of the constant to remove.  Either the name of a global constant, or
                          <return>classname::constname</return> indicating a class constant.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Add a new function, similar to create_function

<comment>Param:</comment>
  <info>string</info>   <strong>$function_name</strong>        Name of the function to be created
  <info>string</info>   <strong>$argument_list</strong>        Comma separated argument list
  <info>string</info>   <strong>$code</strong>                 Code making up the function
  <info>Closure</info>  <strong>$closure</strong>              A <class>closure</class> that defines the function.
  <info>bool</info>     <strong>$return_by_reference</strong>  Whether the function should return by reference.
  <info>string</info>   <strong>$doc_comment</strong>          The doc comment of the function.
  <info>string</info>   <strong>$return_type</strong>          The return type of the function.
  <info>bool</info>     <strong>$is_strict</strong>            Whether the function should behave as if it were declared in a file
                                 with <return>strict_types=1</return>

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Copy a function to a new function name

<comment>Param:</comment>
  <info>string</info>  <strong>$source_name</strong>  Name of the existing function
  <info>string</info>  <strong>$target_name</strong>  Name of the new function to copy the definition to

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Replace a function definition with a new implementation
    
  
  Por padrão, apenas
  funções criadas pelo usuário podem ser removidas, renomeadas ou modificadas. Para
  sobrescrever funções internas, a configuração
  <return>runkit.internal_override</return> deve ser habilitada no php.ini.

<comment>Param:</comment>
  <info>string</info>   <strong>$function_name</strong>        Name of function to redefine
  <info>string</info>   <strong>$argument_list</strong>        New list of arguments to be accepted by function
  <info>string</info>   <strong>$code</strong>                 New code implementation
  <info>Closure</info>  <strong>$closure</strong>              A <class>closure</class> that defines the function.
  <info>bool</info>     <strong>$return_by_reference</strong>  Whether the function should return by reference.
  <info>string</info>   <strong>$doc_comment</strong>          The doc comment of the function.
  <info>string</info>   <strong>$return_type</strong>          The return type of the function.
  <info>bool</info>     <strong>$is_strict</strong>            Whether the function behaves as if it was declared in a file with
                                 <return>strict_types=1</return>

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Remove a function definition
    
  
  Por padrão, apenas
  funções criadas pelo usuário podem ser removidas, renomeadas ou modificadas. Para
  sobrescrever funções internas, a configuração
  <return>runkit.internal_override</return> deve ser habilitada no php.ini.

<comment>Param:</comment>
  <info>string</info>  <strong>$function_name</strong>  Name of the function to be deleted

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Change a function's name
    
  
  Por padrão, apenas
  funções criadas pelo usuário podem ser removidas, renomeadas ou modificadas. Para
  sobrescrever funções internas, a configuração
  <return>runkit.internal_override</return> deve ser habilitada no php.ini.

<comment>Param:</comment>
  <info>string</info>  <strong>$source_name</strong>  Current function name
  <info>string</info>  <strong>$target_name</strong>  New function name

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Process a PHP file importing function and class definitions, overwriting where appropriate
    
  
  Similar to <strong>include()</strong>. However, any code residing outside of a function or class is simply ignored.
  Additionally, depending on the value of <strong>$flags</strong>, any functions or classes which already exist in
  the currently running environment may be automatically overwritten by their new definitions.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Filename to import function and class definitions from
  <info>int</info>     <strong>$flags</strong>     Bitwise OR of the <return>RUNKIT7_IMPORT_*</return> family of constants.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: runkit7_method_add
type: function
doc:
<comment>Description:</comment>
  Dynamically adds a new method to a given class

<comment>Param:</comment>
  <info>string</info>   <strong>$class_name</strong>     The class to which this method will be added
  <info>string</info>   <strong>$method_name</strong>    The name of the method to add
  <info>string</info>   <strong>$argument_list</strong>  Comma-delimited list of arguments for the newly-created method
  <info>string</info>   <strong>$code</strong>           The code to be evaluated when <strong>$method_name</strong> is called
  <info>Closure</info>  <strong>$closure</strong>        A <class>closure</class> that defines the method.
  <info>int</info>      <strong>$flags</strong>          The type of method to create, can be <info>RUNKIT7_ACC_PUBLIC</info>,
                           <info>RUNKIT7_ACC_PROTECTED</info> or <info>RUNKIT7_ACC_PRIVATE</info> optionally combined via
                           bitwise OR with <info>RUNKIT7_ACC_STATIC</info>
  <info>string</info>   <strong>$doc_comment</strong>    The doc comment of the method.
  <info>string</info>   <strong>$return_type</strong>    The return type of the method.
  <info>bool</info>     <strong>$is_strict</strong>      Whether the method behaves as if it were declared in a file with
                           <return>strict_types=1</return>

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Copies a method from class to another

<comment>Param:</comment>
  <info>string</info>  <strong>$destination_class</strong>        Destination class for copied method
  <info>string</info>  <strong>$destination_method_name</strong>  Destination method name
  <info>string</info>  <strong>$source_class</strong>             Source class of the method to copy
  <info>string</info>  <strong>$source_method_name</strong>       Name of the method to copy from the source class. If this
                                    parameter is omitted, the value of <strong>$destination_method_name</strong> is
                                    assumed.

<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>
  Dynamically changes the code of the given method

<comment>Param:</comment>
  <info>string</info>   <strong>$class_name</strong>     The class in which to redefine the method
  <info>string</info>   <strong>$method_name</strong>    The name of the method to redefine
  <info>string</info>   <strong>$argument_list</strong>  Comma-delimited list of arguments for the redefined method
  <info>string</info>   <strong>$code</strong>           The new code to be evaluated when <strong>$method_name</strong> is called
  <info>Closure</info>  <strong>$closure</strong>        A <class>closure</class> that defines the method.
  <info>int</info>      <strong>$flags</strong>          The redefined method can be <info>RUNKIT7_ACC_PUBLIC</info>, <info>RUNKIT7_ACC_PROTECTED</info> or
                           <info>RUNKIT7_ACC_PRIVATE</info> optionally combined via bitwise OR with
                           <info>RUNKIT7_ACC_STATIC</info>
  <info>string</info>   <strong>$doc_comment</strong>    The doc comment of the method.
  <info>string</info>   <strong>$return_type</strong>    The return type of the method.
  <info>bool</info>     <strong>$is_strict</strong>      Whether the method behaves as if it was declared in a file with
                           <return>strict_types=1</return>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Dynamically removes the given method
  
  Esta função não
  pode ser usada para manipular o método atualmente em execução (ou encadeado).

<comment>Param:</comment>
  <info>string</info>  <strong>$class_name</strong>   The class in which to remove the method
  <info>string</info>  <strong>$method_name</strong>  The name of the method to remove

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Dynamically changes the name of the given method
  
  Esta função não
  pode ser usada para manipular o método atualmente em execução (ou encadeado).

<comment>Param:</comment>
  <info>string</info>  <strong>$class_name</strong>          The class in which to rename the method
  <info>string</info>  <strong>$source_method_name</strong>  The name of the method to rename
  <info>string</info>  <strong>$target_method_name</strong>  The new name to give to the renamed method

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Return the integer object handle for given object
    
  
  This function is equivalent to <strong>spl_object_id()</strong>.
  
  This function returns a unique identifier for the object. The object id is unique for the lifetime
  of the object. Once the object is destroyed, its id may be reused for other objects. This behavior
  is similar to <strong>spl_object_hash()</strong>.

<comment>Param:</comment>
  <info>object</info>  <strong>$obj</strong>  Any object.

<comment>Return:</comment>
  <info>int</info>  An integer identifier that is unique for each currently existing object and is always the
       same for each object.

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


id: runkit7_superglobals
type: function
doc:
<comment>Description:</comment>
  Return numerically indexed array of registered superglobals

<comment>Return:</comment>
  <info>array</info>  Returns a numerically indexed array of the currently registered superglobals. i.e. _GET,
         _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

<comment>See Also:</comment>
   * Variable Scope


id: runkit7_zval_inspect
type: function
doc:
<comment>Description:</comment>
  Returns information about the passed in value with data types, reference counts, etc

<comment>Param:</comment>
  <info>string</info>  <strong>$value</strong>  The value to return the representation of

<comment>Return:</comment>
  <info>array</info>  The array returned by this function contains the following elements: <return>address</return><return>refcount</return>
         (optional)<return>is_ref</return> (optional)<return>type</return>

<comment>See Also:</comment>
   * References Explained
   * References Explained (by Derick Rethans)


id: sapi_windows_cp_conv
type: function
doc:
<comment>Description:</comment>
  Converte string de um código de página para outro
  
  Converte string de um código de página para outro.

<comment>Param:</comment>
  <info>int|string</info>  <strong>$in_codepage</strong>   O código de página da string definida pelo parâmetro <strong>$subject</strong>. Pode ser
                             um nome ou um identificador de código de página.
  <info>int|string</info>  <strong>$out_codepage</strong>  O código de página para o qual a string definida por <strong>$subject</strong> será
                             convertida. Pode ser um nome ou um identificador de código de página.
  <info>string</info>      <strong>$subject</strong>       A string a ser convertida.

<comment>Return:</comment>
  <info>string|null</info>  A string em <strong>$subject</strong> convertida para <strong>$out_codepage</strong>, ou <info>null</info> em caso de falha.

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


id: sapi_windows_cp_get
type: function
doc:
<comment>Description:</comment>
  Obtém o código de página atual
  
  Obtém o código de página atual.

<comment>Param:</comment>
  <info>string</info>  <strong>$kind</strong>  O tipo de código de página do sistema operacional a se obter, pode ser <return>'ansi'</return> ou
                 <return>'oem'</return>. Qualquer outro valor refere-se ao código de páginal atual do processo.

<comment>Return:</comment>
  <info>int</info>  Se <strong>$kind</strong> for <return>'ansi'</return>, o código de página ANSI atual do sistema operacional é retornado. Se
       <strong>$kind</strong> for <return>'oem'</return>, o código de página OEM do sistema operacional é retornado. Caso contrário, o
       código de página atual do processo é retornado.

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


id: sapi_windows_cp_is_utf8
type: function
doc:
<comment>Description:</comment>
  Indica se o código de página é compatível com UTF-8
  
  Indica se o código de página do processo atual é compatível com UTF-8.

<comment>Return:</comment>
  <info>bool</info>  Retorna verdadeiro se o código de página do processo atual for compatível com UTF-8, caso
        contrário retorna falso.

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


id: sapi_windows_cp_set
type: function
doc:
<comment>Description:</comment>
  Define o código de página do processo
  
  Define o código de página do processo atual.

<comment>Param:</comment>
  <info>int</info>  <strong>$codepage</strong>  Um identificador de código de página.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: sapi_windows_generate_ctrl_event
type: function
doc:
<comment>Description:</comment>
  Envia um evento CTRL a outro processo
  
  Envia um evento CTRL a outro processo no mesmo grupo de processos.

<comment>Param:</comment>
  <info>int</info>  <strong>$event</strong>  O evento <return>CTRL</return> a enviar; pode ser <info>PHP_WINDOWS_EVENT_CTRL_C</info> ou
               <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.
  <info>int</info>  <strong>$pid</strong>    O ID do processo ao qual deve-se enviar o evento. Se <return>0</return> for informado, o evento é
               enviado a todos os processos do mesmo grupo.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Define ou remove um manipulador de evento CTRL
  
  Define ou remove um manipulador de evento <return>CTRL</return>, que permite que os processos CLI do Windows
  interceptem ou ignorem eventos <return>CTRL+C</return> e <return>CTRL+BREAK</return>. Observe que em ambientes multi-thread, isto só
  é possível quando a função é chamada da thread principal.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$handler</strong>  Uma função de chamada de retorno a ser definida ou removida. Se definida,
                           esta função será chamada sempre que um evento <return>CTRL+C</return> ou <return>CTRL+BREAK</return>
                           ocorrer. A função deve ter a seguinte assinatura: <info>void</info>handler<info>int</info><strong>$event</strong>
                           <strong>$event</strong> O evento <return>CTRL</return> que foi recebido; pode ser <info>PHP_WINDOWS_EVENT_CTRL_C</info>
                           ou <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.  Definir um <strong>$handler</strong> como <info>null</info> faz com
                           que o processo ignore eventos <return>CTRL+C</return>, mas não os eventos <return>CTRL+BREAK</return>.
                           
                           O evento <return>CTRL</return> que foi recebido; pode ser <info>PHP_WINDOWS_EVENT_CTRL_C</info> ou
                           <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.
  <info>int</info>            <strong>$event</strong>    O evento <return>CTRL</return> que foi recebido; pode ser <info>PHP_WINDOWS_EVENT_CTRL_C</info> ou
                           <info>PHP_WINDOWS_EVENT_CTRL_BREAK</info>.
  <info>bool</info>           <strong>$add</strong>      Se for igual a <info>true</info>, o manipulador é definido. Se for <info>false</info>, o
                           manipulador é removido.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: sapi_windows_vt100_support
type: function
doc:
<comment>Description:</comment>
  Obtém ou define suporte VT100 para o fluxo especificado associado a um buffer de saída de um
  console
  Windows.
  
  Se <strong>$enable</strong> for <info>null</info>, a função retorna <info>true</info> se o fluxo <strong>$stream</strong> tem códigos de controle VT100
  habilitados, <info>false</info> caso não tenha.
  
  Se <strong>$enable</strong> for do tipo <info>bool</info>, a função tentará habilitar ou desabilitar os recursos VT100 do fluxo
  <strong>$stream</strong>. Se o recurso tiver sido habilitado (ou desabilitado) com sucesso, a função retornará
  <info>true</info>, caso contrário retornará <info>false</info>.
  
  Na inicialização, o PHP tenta habilitar o recurso VT100 dos fluxos <info>STDOUT</info>/<info>STDERR</info>. A propósito, se
  esses fluxos forem redirecionados para um arquivo, os recursos VT100 podem não ser habilitados.
  
  Se o suporte a VT100 for habilitado, é possível usar sequências de controle como são conhecidas
  pelo terminal VT100. Elas permitem a alteração da saída do terminal. No Windows essas sequências
  são chamadas Sequências de Terminais Virtuais do Console.
  
  Esta função usa a opção <info>ENABLE_VIRTUAL_TERMINAL_PROCESSING</info> implementada na API do Windows 10, por
  isso o recurso VT100 pode não estar disponível em versões antigas do Windows.

<comment>Param:</comment>
  <info>resource</info>   <strong>$stream</strong>  O fluxo no qual a função irá operar.
  <info>bool|null</info>  <strong>$enable</strong>  Se for do tipo <info>bool</info>, o recurso VT100 será habilitado (se <info>true</info>) ou desabilitado
                      (se <info>false</info>).

<comment>Return:</comment>
  <info>bool</info>  Se <strong>$enable</strong> for <info>null</info>: retorna <info>true</info> se o recurso VT100 for habilitado, <info>false</info> caso contrário.
        
        Se <strong>$enable</strong> for do tipo <info>bool</info>: Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: scandir
type: function
doc:
<comment>Description:</comment>
  Lista arquivos e diretórios dentro do caminho especificado
  
  Retorna um <info>array</info> de arquivos e diretórios dentro de <strong>$directory</strong>.

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>      O diretório que será pesquisado.
  <info>int</info>            <strong>$sorting_order</strong>  Por padrão, a lista está em ordem alfabética crescente. Se o
                                 parâmetro opcional <strong>$sorting_order</strong> for definido para
                                 <info>SCANDIR_SORT_DESCENDING</info>, a ordenação será alfabética decrescente.
                                 Se definida para <info>SCANDIR_SORT_NONE</info>, o resultado não será ordenado.
  <info>resource|null</info>  <strong>$context</strong>        Para uma descrição do parâmetro <strong>$context</strong> refira-se à seção de
                                 fluxos do manual.

<comment>Return:</comment>
  <info>array|false</info>  Retorna um <info>array</info> com nomes de arquivos em caso de sucesso, ou <info>false</info> em caso de falha.
               Se <strong>$directory</strong> não for um diretório, <info>false</info> é retornado e um aviso <info>E_WARNING</info> é gerado.

<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>
  Returns a list of instrumented calls that have occurred
  
  Returns a list of any instrumented function calls since <strong>scoutapm_get_calls()</strong> was last called. The
  list is cleared each time the function is called.

<comment>Return:</comment>
  <info>array</info>  <strong>scoutapm_get_calls()</strong> returns an array containing a list of all recorded calls to
         instrumented function calls.


id: scoutapm_list_instrumented_functions
type: function
doc:
<comment>Description:</comment>
  List functions scoutapm will instrument.
  
  Returns a list of the functions the extension will instrument.

<comment>Return:</comment>
  <info>array</info>  <strong>scoutapm_list_instrumented_functions()</strong> returns an array containing a list of all functions
         that the scoutapm extension is able to instrument in the current installation.


id: seaslog_get_author
type: function
doc:
<comment>Description:</comment>
  Get SeasLog author.

<comment>Return:</comment>
  <info>string</info>  Return SeasLog author as string.


id: seaslog_get_version
type: function
doc:
<comment>Description:</comment>
  Get SeasLog version.

<comment>Return:</comment>
  <info>string</info>  Return SeasLog version (SEASLOG_VERSION) as string.


id: sem_acquire
type: function
doc:
<comment>Description:</comment>
  Acquire a semaphore
  
  <strong>sem_acquire()</strong> by default blocks (if necessary) until the semaphore can be acquired.  A process
  attempting to acquire a semaphore which it has already acquired will block forever if acquiring
  the semaphore would cause its maximum number of semaphore to be exceeded.
  
  After processing a request, any semaphores acquired by the process but not explicitly released
  will be released automatically and a warning will be generated.

<comment>Param:</comment>
  <info>SysvSemaphore</info>  <strong>$semaphore</strong>     <strong>$semaphore</strong> is a semaphore obtained from <strong>sem_get()</strong>.
  <info>bool</info>           <strong>$non_blocking</strong>  Specifies if the process shouldn't wait for the semaphore to be
                                acquired. If set to <info>true</info>, the call will return <info>false</info> immediately if
                                a semaphore cannot be immediately acquired.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: sem_get
type: function
doc:
<comment>Description:</comment>
  Get a semaphore id
  
  <strong>sem_get()</strong> returns an id that can be used to access the System V semaphore with the given <strong>$key</strong>.
  
  A second call to <strong>sem_get()</strong> for the same key will return a different semaphore identifier, but both
  identifiers access the same underlying semaphore.
  
  If <strong>$key</strong> is <return>0</return>, a new private semaphore is created for each call to <strong>sem_get()</strong>.

<comment>Param:</comment>
  <info>int</info>   <strong>$key</strong>           
  <info>int</info>   <strong>$max_acquire</strong>   The number of processes that can acquire the semaphore simultaneously is set
                       to <strong>$max_acquire</strong>.
  <info>int</info>   <strong>$permissions</strong>   The semaphore permissions. Actually this value is set only if the process
                       finds it is the only process currently attached to the semaphore.
  <info>bool</info>  <strong>$auto_release</strong>  Specifies if the semaphore should be automatically released on request
                       shutdown.

<comment>Return:</comment>
  <info>SysvSemaphore|false</info>  Returns a positive semaphore identifier on success, or <info>false</info> on error.

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


id: sem_release
type: function
doc:
<comment>Description:</comment>
  Release a semaphore
  
  <strong>sem_release()</strong> releases the semaphore if it is currently acquired by the calling process, otherwise
  a warning is generated.
  
  After releasing the semaphore, <strong>sem_acquire()</strong> may be called to re-acquire it.

<comment>Param:</comment>
  <info>SysvSemaphore</info>  <strong>$semaphore</strong>  A Semaphore as returned by <strong>sem_get()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: sem_remove
type: function
doc:
<comment>Description:</comment>
  Remove a semaphore
  
  <strong>sem_remove()</strong> removes the given semaphore.
  
  After removing the semaphore, it is no longer accessible.

<comment>Param:</comment>
  <info>SysvSemaphore</info>  <strong>$semaphore</strong>  A semaphore as returned by <strong>sem_get()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: serialize
type: function
doc:
<comment>Description:</comment>
  Gera uma representação armazenável de um valor
  
  Gera uma representação armazenável de um valor.
  
  É útil para armazenar ou passar um valor do PHP sem perder seu tipo ou estrutura.
  
  Para restaurar uma string serializada de volta a um valor PHP, use <strong>unserialize()</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  O valor a ser serializado. <strong>serialize()</strong> lida com todos os tipos, exceto recursos
                 (<info>resource</info>) e alguns objetos (<info>object</info>)s (veja nota abaixo). Pode-se até usar
                 <strong>serialize()</strong> para array que contenha referência a si mesmo. Referências circulaes
                 dentro do array/objeto a ser serializado também serão armazenadas. Qualquer outra
                 referência será perdida.
                 
                 Ao serializar objetos, o PHP tentará chamar as funções membro __serialize() ou
                 __sleep() antes da serialização. Isto serve para permitir ao objeto alguma limpeza
                 de última hora, etc. antes de ser realizado. Da mesma forma, quando o objeto é
                 restaurado usando <strong>unserialize()</strong>, a função membro __unserialize() ou __wakeup() será
                 chamada.
                 
                 Os membros privados terão o nome da classe prefixando o nome do membro; membros
                 protegidos terão um '*' prefixando o nome. Estes prefixos serão envolvidos por
                 bytes nulos, um de cada lado.

<comment>Return:</comment>
  <info>string</info>  Retorna uma string contendo uma representação em fluxo de bytes de <strong>$value</strong> que pode ser
          armazenada em qualquer lugar.
          
          Note que esta string é binária e pode incluir bytes nulos, e precisa ser armazenada e
          gerenciada como tal. Por exemplo, a saída de <strong>serialize()</strong> deveria ser armazenada geralmente
          em um campo BLOB de um banco de dados, e não em um campo tipo CHAR ou TEXT.

<comment>See Also:</comment>
   * <strong>unserialize()</strong>
   * <strong>var_export()</strong>
   * <strong>json_encode()</strong>
   * Serializando Objetos
   * __sleep()
   * __wakeup()
   * __serialize()
   * __unserialize()


id: session_abort
type: function
doc:
<comment>Description:</comment>
  Descarta as alterações no array da sessão e encerra a sessão
  
  <strong>session_abort()</strong> encerra a sessão sem salvar dados. Consequentemente, os valores originais da
  sessão são mantidos.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<comment>See Also:</comment>
   * $_SESSION
   * 
     Diretiva de
     configuração 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>
  Obter e/ou definir a expiração do cache atual
  
  <strong>session_cache_expire()</strong> retorna a configuração atual de <return>session.cache_expire</return>.
  
  O prazo para o cache expirar é redefinido para o padrão de 180 guardado em session.cache_expire na
  inicialização da requisição. Então você precisa chamar <strong>session_cache_expire()</strong> para cada requesição
  (e antes que <strong>session_start()</strong> seja utilizada).

<comment>Param:</comment>
  <info>int|null</info>  <strong>$value</strong>  Se <strong>$value</strong> é informado e não <info>null</info>, a expiração do cache atual é modificado para
                    <strong>$value</strong>.
                    
                     Definir o valor de <strong>$value</strong> tem valor apenas se <return>session.cache_limiter</return> é definido
                    como um valor diferente de <return>nocache</return>.
                    
                    Definir o valor de <strong>$value</strong> tem valor apenas se <return>session.cache_limiter</return> é definido
                    como um valor diferente de <return>nocache</return>.

<comment>Return:</comment>
  <info>int|false</info>  Retorna a configuração atual de <return>session.cache_expire</return>. O valor retornado deve ser lido
             em minutos, padrão de 180. Caso não seja possível alterar o valor, <info>false</info> é retornado.

<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>
  Obtém e/ou define o limitador do cache atual
  
  <strong>session_cache_limiter()</strong> retorna o nome do atual limitador do cache.
  
  O limitador do cache controla quais HTTP headers de controle de cache são enviados para o cliente.
  Estes headers determinam as regras pelas quais o conteúdo da página pode ser guardado em cache
  pelo cliente e proxy intermediário.  Definindo o limitador do cache para <return>nocache</return> rejeitaria
  qualquer cache do cliente/proxy. Um valor como <return>public</return> permitiria o cache do proxy e do cliente, e
  <return>private</return> rejeitaria o cache do proxy mas permite que o cliente armazene o conteúdo em cache.
  
  No modo <return>private</return>, o cabeçalho Expire enviado para o cliente pode provocar confusão em alguns
  browsers, incluindo o Mozilla. Você pode evitar este problema usando o modo <return>private_no_expire</return>. O
  cabeçalho <return>Expire</return> nunca é enviado para o cliente nesse modo.
  
  Definindo o limitador do cache como <return>''</return> desativará completamente o envio automático de cabeçalhos
  de cache.
  
  O limitador do cache é redefinido para o valor padrão guardado em session.cache_limiter na
  inicialização da requisição. Então você precisa chamar <strong>session_cache_limiter()</strong> para cada
  requisição (e antes que <strong>session_start()</strong> seja chamada).

<comment>Param:</comment>
  <info>string|null</info>  <strong>$value</strong>  Se <strong>$value</strong> é especificado e não <info>null</info>, o nome do limitador de cache atual é
                       modificado para o novo valor.

<comment>Return:</comment>
  <info>string|false</info>  Retorna o nome do limitador de cache atual. Caso não seja possível alterar o valor,
                <info>false</info> é retornado.

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


id: session_commit
type: function
doc:
<comment>Description:</comment>
  Sinônimo de session_write_close
  
  Esta função é um apelido para:  <strong>session_write_close()</strong>.


id: session_create_id
type: function
doc:
<comment>Description:</comment>
  Cria novo ID de sessão
  
  <strong>session_create_id()</strong> é usado para criar um novo id de sessão para a sessão atual. Ele retorna um ID
  de sessão livre de colisão.
  
  Se a sessão não estiver ativa, a verificação de colisão será omitida.
  
  O id de sessão é criado de acordo com a configuração no php.ini.
  
  É importante usar o mesmo ID de usuário do seu servidor web para o script de tarefa do GC. Caso
  contrário, você poderá ter problemas de permissão, especialmente com o gerenciador de salvamento
  de arquivos.

<comment>Param:</comment>
  <info>string</info>  <strong>$prefix</strong>  Se <strong>$prefix</strong> for especificado, o novo id de sessão é prefixado por <strong>$prefix</strong>. Nem
                   todos os caracteres são permitidos no ID da sessão.  Caracteres entre <return>a-z A-Z 0-9
                   , (vírgula) e - (sinal de menos)</return> são permitidos.

<comment>Return:</comment>
  <info>string|false</info>  <strong>session_create_id()</strong> retorna um novo id de sessão livre de colisão para a sessão
                atual. Se for usado sem uma sessão ativa, a verificação de colisão é omitida. Em
                caso de falha, <info>false</info> é retornado.

<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>
  Decodifica dados de sessão de uma sessão codificada em formato string
  
  <strong>session_decode()</strong> decodifica os dado de sessão serializados fornecidos em <strong>$data</strong> e preenche a super
  global $_SESSION com o resultado.
  
  Por padrão, o método de deserialização usado é interno do PHP e não é o mesmo que <strong>unserialize()</strong>. O
  método de deserialização pode ser configurado usando session.serialize_handler.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Os dados codificados para serem armazenados.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: session_destroy
type: function
doc:
<comment>Description:</comment>
  Destrói todos os dados registrados em uma sessão
  
  <strong>session_destroy()</strong> destrói todos os dados associados com a sessão atual. Ela não apaga nenhuma das
  variáveis globais associadas à sessão atual, nem apaga o cookie de sessão. Para usar as variáveis
  de sessão novamente, <strong>session_start()</strong> deve ser chamada.
  
  Não é necessário chamar <strong>session_destroy()</strong> em um código habitual. Ao invés de destruir os dados da
  sessão, limpe o array $_SESSION.
  
  Para matar a sessão completamente, o ID da sessão também deve ser apagado. Se um cookie for usado
  para propagar o ID da sessão (funcionamento padrão), então o cookie de sessão deve ser excluído.
  <strong>setcookie()</strong> pode ser usado para isso.
  
  Quando session.use_strict_mode está habilitado, não é necessário remover o cookie de ID das
  sessões obsoletas porque o módulo de sessão não aceitará um cookie de ID de sessão quando não
  houver dados associados ao ID de sessão, e irá criar um novo cookie de ID de sessão. Habilitar
  session.use_strict_mode é recomendado para todos os sites.
  
  A remoção imediata da sessão pode causar resultados indesejados. Quando há requisições
  concorrentes, outras conexões podem perder de forma repentina os dados da sessão, como por
  exemplo, requisições originadas no JavaScript e/ou requisições de links.
  
  Embora o módulo de sessão atual não aceita um cookie de ID de sessão vazio, a remoção imediata da
  sessão pode resultar em um cookie de ID de sessão vazio por causa da condição de corrida no
  navegador do usuário. Isso fará com que o usuário crie vários IDs de sessão desnecessariamente.
  
  Para evitar isso, deve ser definido um timestamp de removação em $_SESSION e o acesso à sessão
  deve ser rejeitado algum tempo depois. Ou então a aplicação não pode ter requisições concorrentes.
  Isso se aplica à <strong>session_regenerate_id()</strong> também.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Codifica os dados atuais da sessão como uma sessão codificada em formato string
  
  <strong>session_encode()</strong> retorna uma string serializada do conteúdo atual da sessão armazenados na super
  global $_SESSION.
  
  Por padrão, o método de serialização usado é interno do PHP e não é o mesmo que <strong>serialize()</strong>. O
  método de serialização pode ser configurado usando session.serialize_handler.

<comment>Return:</comment>
  <info>string|false</info>  Retorna o conteúdo da sessão atual codificado,  ou <info>false</info> em caso de falha.

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


id: session_gc
type: function
doc:
<comment>Description:</comment>
  Executa a coleta de lixo de dados da sessão
  
  <strong>session_gc()</strong> é usado para realizar o GC (coleta de lixo) de dados da sessão. O PHP faz GC de
  sessão baseado em probabilidade por padrão.
  
  A coleta de lixo baseada em probabilidade funciona até certo ponto, mas possui alguns problemas.
  1) Os dados de sessão de sites com baixo tráfego podem não ser excluídos dentro do período
  preferido. 2) A coleta de lixo em sites com alto tráfego pode ser muito frequente. 3) A coleta de
  lixo é realizada mediante solicitação do usuário, e o usuário pode experimentar um atraso durante
  o processo de coleta de lixo.
  
  Portanto, é recomendado executar a coleta de lixo periodicamente em sistemas de produção,
  utilizando, por exemplo, o "cron" para sistemas semelhantes ao UNIX. Certifique-se de desativar a
  coleta de lixo baseada em probabilidade definindo session.gc_probability como 0.

<comment>Return:</comment>
  <info>int|false</info>  <strong>session_gc()</strong> retorna o número de dados de sessão excluídos em caso de sucesso e <info>false</info>
             em caso de falha.
             
             Os manipuladores de salvamento antigos não retornam o número de dados de sessão
             excluídos, apenas um indicativo de sucesso ou falha. Se este for o caso, o número de
             dados de sessão excluídos se torna 1, independentemente dos dados realmente excluídos.

<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>
  Obtém os parâmetros do cookie da sessão
  
  Obtém os parâmetros do cookie da sessão.

<comment>Return:</comment>
  <info>array</info>  Retorna um array com informação do cookie da sessão atual. O array contém os seguintes
         items: "lifetime" -  A duração do cookie em segundos. "path" -  O caminho onde a informação
         está armazenada. "domain" -  O domínio do cookie. "secure" -  O cookie deve ser enviado
         apenas em conexões seguras. "httponly" - O cookie pode ser acessado somente atráves do
         protocolo HTTP. "samesite" - Controla o envio entre domínios do cookie.
         
         "lifetime" -  A duração do cookie em segundos.
         
         "path" -  O caminho onde a informação está armazenada.
         
         "domain" -  O domínio do cookie.
         
         "secure" -  O cookie deve ser enviado apenas em conexões seguras.
         
         "httponly" - O cookie pode ser acessado somente atráves do protocolo HTTP.
         
         "samesite" - Controla o envio entre domínios do 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>
  Obtém e/ou define o id de sessão atual
  
  <strong>session_id()</strong> é usado para obter ou definir o id de sessão para a sessão atual.
  
  A constante <info>SID</info> também pode ser usada para obter o nome e id da sessão atual como uma string
  adequado para adicionar em URLs. Veja também Manipulação de Sessão.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$id</strong>  Se <strong>$id</strong> for especificado e não <info>null</info>, ele substituirá o id de sessão atual.
                    <strong>session_id()</strong> precisa ser chamado antes de <strong>session_start()</strong> para este fim.
                    Dependendo do manipulador de sessão, nem todos os caracteres são permitidos em
                    um id de sessão. Por exemplo, o manipulador de sessão em arquivo permite apenas
                    caracteres no intervalo <return>a-z A-Z 0-9 , (comma) and - (minus)</return>!
                    
                    Quando estiver usando cookies de sessão, especificar um <strong>$id</strong> para <strong>session_id()</strong>
                    sempre enviará um novo cookie quando <strong>session_start()</strong> for chamada, sem importar
                    se o id da sessão atual for idêntico ao que está sendo definido.

<comment>Return:</comment>
  <info>string|false</info>  <strong>session_id()</strong> retorna o id de sessão para a sessão atual ou uma string vazia (<return>""</return>) se
                não houver sessão atual (não existe um id de sessão atual). Em caso de falha, <info>false</info>
                é retornado.

<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>
  Obtém e/ou define o módulo da sessão atual
  
  <strong>session_module_name()</strong> obtém o nome do módulo da sessão atual, que também é conhecido como
  session.save_handler.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$module</strong>  Se <strong>$module</strong> é especificado e não <info>null</info>, então é este módulo que será usado. É
                        proibido passar <return>"user"</return> para este parâmetro. Em vez de
                        <strong>session_set_save_handler()</strong> deve ser chamado para definir um usuário
                        manipulador de sessão definido.

<comment>Return:</comment>
  <info>string|false</info>  Retorna o nome do módulo da sessão atual,  ou <info>false</info> em caso de falha.


id: session_name
type: function
doc:
<comment>Description:</comment>
  Obtém e/ou define o nome da sessão atual
  
  <strong>session_name()</strong> retorna o nome da sessão atual. Se <strong>$name</strong> é informado, <strong>session_name()</strong> vai atualizar
  o nome da sessão e retornar o nome da sessão antiga.
  
  Se um novo <strong>$name</strong> de sessão é fornecido, <strong>session_name()</strong> modifica o cookie HTTP (e saída de conteúdo
  quando <return>session.transid</return> é habilitado). Assim que o cookie HTTP é enviado, <strong>session_name()</strong> gera erro.
  <strong>session_name()</strong> deve ser chamado antes de <strong>session_start()</strong> para a sessão funcionar apropriadamente.
  
  O nome da sessão é redefinido para o padrão guardado em <return>session.name</return> na inicialização da
  requisição. Então você deve chamar <strong>session_name()</strong> para cada requisição (e antes que
  <strong>session_start()</strong> seja chamado).

<comment>Param:</comment>
  <info>string|null</info>  <strong>$name</strong>  O nome da sessão refere-se ao nome da sessão, que é usado em cookies e URLs
                      (por exemplo, <return>PHPSESSID</return>). Ele deve conter apenas caracteres alfanuméricos; ele
                      deve ser curto e descritivo (para usuários com avisos de cookie habilitados).
                      Se <strong>$name</strong> é informado e não <info>null</info>, o nome da sessão atual é modificado para o
                      novo valor.
                      
                       O nome da sessão não pode consistir apenas de dígitos, pelo menos uma letra
                      deve estar presente. Caso contrário um novo id de sessão é gerado toda vez.
                      
                      O nome da sessão não pode consistir apenas de dígitos, pelo menos uma letra
                      deve estar presente. Caso contrário um novo id de sessão é gerado toda vez.

<comment>Return:</comment>
  <info>string|false</info>  Retorna o nome da sessão atual. Se <strong>$name</strong> é informado e a função atualizar o nome da
                sessão, o nome da sessão antiga é retornado,  ou <info>false</info> em caso de falha.

<comment>See Also:</comment>
   * session.name (diretiva de
     configuração)
    


id: session_regenerate_id
type: function
doc:
<comment>Description:</comment>
  Atualiza o id da sessão atual com um novo id gerado
    
  
  <strong>session_regenerate_id()</strong> substituirá o id da sessão atual com um novo id e manterá a informação da
  sessão atual.
  
  Quando session.use_trans_sid estiver habilitada, saídas (output) devem ser iniciadas depois de
  <strong>session_regenerate_id()</strong> ser chamada. Caso contrário, o ID da sessão antiga é utilizado.
  
  Atualmente, session_regenerate_id não lida muito bem em redes instáveis como, por exemplo, móvel e
  WiFi. Pode ocorrer perda da sessão ao chamar session_regenerate_id.
  
  Os dados de sessões antigas não devem ser destruídos imediatamente; ao invés disso, deve ser usado
  timestamp para destruir a sessão e controlar o acesso aos dados de sessões antigas. Caso
  contrário, acessos concorrentes à página podem causar inconsistências, a perda da sessão, ou pode
  causar uma condição de corrida no navegador do usuário que faz com que vários IDs de sessão sejam
  criados desnecessariamente. A remoção imediata dos dados de sessão impossibilita a detecção de
  ataques de roubo de sessão, e também a prevenção.

<comment>Param:</comment>
  <info>bool</info>  <strong>$delete_old_session</strong>  Se o arquivo associado à sessão anterior deve ser excluído ou não. A
                             sessão antiga não deve ser removida se for necessário evitar condições
                             de corrida causadas pela remoção, ou se for necessário detectar/evitar
                             ataques de roubo de sessão.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Função de finalização da sessão
  
  Registra <strong>session_write_close()</strong> como uma função de finalização.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.


id: session_reset
type: function
doc:
<comment>Description:</comment>
  Reinicializa um array de sessão com os valores originais
  
  <strong>session_reset()</strong> reinicializa uma sessão com os valores originais salvos no armazenamento de
  sessão. Esta função requer uma sessão ativa e descarta as alterações em $_SESSION.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<comment>See Also:</comment>
   * $_SESSION
   * 
     A diretiva de
     configuração 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>
  Obtém e/ou define o caminho para armazenamento da sessão atual
  
  <strong>session_save_path()</strong> retorna o caminho do diretório atual utilizado para salvar os dados de sessão.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$path</strong>  Caminho dos dados de sessão. Se informado e não <info>null</info>, o caminho onde os dados
                      são salvos será alterado. <strong>session_save_path()</strong> precisa ser chamada antes de
                      <strong>session_start()</strong> para isto.
                      
                       Em alguns sistemas operacionais, talvez você queira especificar um caminho em
                      um sistema de arquivos (filesystem) que possa manuzear grande quantidade de
                      pequenos arquivos eficientemente. Por exemplo, no Linux, reiserfs pode ter
                      performance melhor do que ext2fs.
                      
                      Em alguns sistemas operacionais, talvez você queira especificar um caminho em
                      um sistema de arquivos (filesystem) que possa manuzear grande quantidade de
                      pequenos arquivos eficientemente. Por exemplo, no Linux, reiserfs pode ter
                      performance melhor do que ext2fs.

<comment>Return:</comment>
  <info>string|false</info>  Retorna o caminho atual do diretório usado para o armazenamento de dados,  ou <info>false</info>
                em caso de falha.

<comment>See Also:</comment>
   * session.save_path
     (diretiva de configuração)
    


id: session_set_cookie_params
type: function
doc:
<comment>Description:</comment>
  Define os parâmetros do cookie de sessão
  
  Alternative signature available as of PHP 7.3.0:
  
  Define parâmetros dos cookies configurados no arquivo php.ini. O efeito desta função é apenas pela
  duração do script. Então, você precisa chamar <strong>session_set_cookie_params()</strong> para cada requisição e
  antes que <strong>session_start()</strong> seja chamada.
  
  Esta função atualiza os valores em tempo de execução correspondentes às configurações INI que
  podem ser obetidos com <strong>ini_get()</strong>.

<comment>Param:</comment>
  <info>int</info>          <strong>$lifetime_or_options</strong>  Ao usar a primeira assinatura, lifetime do cookie de sessão,
                                     definido em segundos.
                                     
                                     Ao usar a segunda assinatura, um <info>array</info> associativo que pode ter
                                     qualquer uma das chaves <return>lifetime</return>, <return>path</return>, <return>domain</return>, <return>secure</return>,
                                     <return>httponly</return> e <return>samesite</return>. Os valores têm o mesmo significado
                                     descrito para os parâmetros com o mesmo nome. O valor do
                                     elemento <return>samesite</return> deve ser ou <return>Lax</return> ou <return>Strict</return>. Se alguma das
                                     opções permitidas não for fornecida, seus valores padrão serão
                                     os iguais aos valores padrão dos parâmetros explícitos. Se o O
                                     elemento <return>samesite</return> é omitido, nenhum cookie SameSite atributo é
                                     definido.
  <info>string|null</info>  <strong>$path</strong>                 Caminho no domínio onde o cookie vai funcionar. Use uma única
                                     barra ('/') para que funcione em todos os caminhos do domínio.
  <info>string|null</info>  <strong>$domain</strong>               Domínio do cookie, por exemplo 'www.php.net'. Para tornar os
                                     cookies visíveis em todos os subdomínios, o domínio deve ser
                                     prefixado com um ponto, como '.php.net'.
  <info>bool|null</info>    <strong>$secure</strong>               Se <info>true</info>, o cookie só será enviado em conexões seguras.
  <info>bool|null</info>    <strong>$httponly</strong>             Se <info>true</info>, então o PHP tentará enviar a flag httponly ao definir
                                     o cookie de sessão.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Define funções de armazenamento de sessão à nível de usuário
  
  É possível registrar o seguinte protótipo:
  
  <strong>session_set_save_handler()</strong> define, a nível de usuário, as funções de armazenamento de sessão que
  serão usadas para guardar e buscar dados associados à uma sessão.  Ela é mais útil quando um
  método de armazenamento diferente do método disponibilizado pelas sessões do PHP é preferido, por
  exemplo armazenar os dados de sessão em um banco de dados.

<comment>Param:</comment>
  <info>object</info>    <strong>$sessionhandler</strong>     Uma instância de uma classe implementando SessionHandlerInterface, e
                                opcionalmente SessionIdInterface e/ou
                                SessionUpdateTimestampHandlerInterface, como <class>SessionHandler</class>, para
                                registrá-la como manipulador de sessão.
  <info>bool</info>      <strong>$register_shutdown</strong>  Registra <strong>session_write_close()</strong> como uma função
                                <strong>register_shutdown_function()</strong>.
  <info>callable</info>  <strong>$open</strong>               Um callable com a seguinte assinatura:
                                <info>bool</info>open<info>string</info><strong>$savePath</strong><info>string</info><strong>$sessionName</strong>
                                
                                O callback open funciona igual um construtor em classes e é
                                executado quando a sessão está sendo aberta.  É a primeira função de
                                callback executada quando a sessão é iniciada automaticamente ou
                                manualmente com <strong>session_start()</strong>. O valor de retorno é <info>true</info> para
                                sucesso, <info>false</info> para falha.
  <info>callable</info>  <strong>$close</strong>              Um callable com a seguinte assinatura: <info>bool</info>close
                                
                                O callback close funciona igual um destrutor em classes e é
                                executado depois que o callback write da sessão for chamado. Ele
                                também é invocado quando a função <strong>session_write_close()</strong> é chamada. O
                                valor de retorno é <info>true</info> para sucesso, <info>false</info> para falha.
  <info>callable</info>  <strong>$read</strong>               Um callable com a seguinte assinatura: <info>string</info>read<info>string</info><strong>$sessionId</strong>
                                
                                O callback <strong>$read</strong> sempre deve retornar uma sessão codificada
                                (serializada) no formato string ou uma string vazia se não há dados
                                para leitura.
                                
                                Esse callback é chamado internamente pelo PHP quando a sessão inicia
                                ou quando a função <strong>session_start()</strong> é chamada.  Antes que esse
                                callback seja invocado, o PHP invocará o callback <strong>$open</strong>.
                                
                                O valor que esse callback retorna deve estar exatamente no mesmo
                                formato de serialização que originalmente foi passado para
                                armazenamento ao callback <strong>$write</strong>.  O valor retornado será
                                desserializado automaticamente pelo PHP e usado para preencher a
                                super global $_SESSION. Mesmo que os dados pareçam similares ao de
                                <strong>serialize()</strong>, note que é um formato diferente, especificado na
                                configuração INI session.serialize_handler.
  <info>callable</info>  <strong>$write</strong>              Um callable com a seguinte assinatura:
                                <info>bool</info>write<info>string</info><strong>$sessionId</strong><info>string</info><strong>$data</strong>
                                
                                O callback <strong>$write</strong> é chamado quando a sessão precisa ser salva e
                                fechada. Esse callback recebe o ID da sessão atual e uma versão
                                serializada da super global $_SESSION. O método de serialização
                                usado internamente pelo PHP é definido pela configuração INI
                                session.serialize_handler.
                                
                                Os dados de sessão serializados passado para esse callback devem ser
                                armazenados junto com o ID de sessão passado. Ao buscar esses dados,
                                o callback <strong>$read</strong> deve retornar exatamente o mesmo valor que foi
                                passado originalmente para o callback <strong>$write</strong>.
                                
                                Esse callback é invocado quando o PHP é encerrado ou explicitamente
                                quando a função <strong>session_write_close()</strong> é chamada.  Note que depois de
                                executar esta função, o PHP executará internamente o callback
                                <strong>$close</strong>.  O manipulador "write" não é executado enquanto o fluxo de
                                saída não for encerrado.  Portanto, saídas de comandos de debug no
                                manipulador "write" nunca serão vistas pelo browser.  Se a saída de
                                debug é necessária, é recomendado que ela seja escrita em arquivo.
                                
                                O manipulador "write" não é executado enquanto o fluxo de saída não
                                for encerrado.  Portanto, saídas de comandos de debug no manipulador
                                "write" nunca serão vistas pelo browser.  Se a saída de debug é
                                necessária, é recomendado que ela seja escrita em arquivo.
  <info>callable</info>  <strong>$destroy</strong>            Um callable com a seguinte assinatura: <info>bool</info>destroy<info>string</info><strong>$sessionId</strong>
                                
                                Esse callback é executado quando uma sessão é destruída com
                                <strong>session_destroy()</strong> ou com <strong>session_regenerate_id()</strong> com o parâmetro de
                                destruição definido como <info>true</info>. O valor de retorno deve ser <info>true</info> para
                                sucesso, <info>false</info> para falha.
  <info>callable</info>  <strong>$gc</strong>                 Um callable com a seguinte assinatura: <info>bool</info>gc<info>int</info><strong>$lifetime</strong>
                                
                                O callback de limpeza (gc) é invocado pelo PHP, internamente e
                                periodicamente, para apagar dados de sessão antiga.  A frequência é
                                controlada por session.gc_probability e session.gc_divisor. O valor
                                do parâmetro que é passado para esse callback pode ser definido em
                                session.gc_maxlifetime. O valor de retorno deve ser <info>true</info> para
                                sucesso, <info>false</info> para falha.
  <info>callable</info>  <strong>$create_sid</strong>         Um callable com a seguinte assinatura: <info>string</info>create_sid
                                
                                Esse callback é executado quando um novo ID de sessão é necessário.
                                Nenhum parâmetro é necessário e o valor de retorno deve ser uma
                                string que seja um ID de sessão válido para seu manipulador.
  <info>callable</info>  <strong>$validate_sid</strong>       Um callable com a seguinte assinatura: <info>bool</info>validate_sid<info>string</info><strong>$key</strong>
                                
                                Este callback é executado quando uma sessão é iniciada, um ID de
                                sessão é fornecido e session.use_strict_mode é habilitado. A <strong>$key</strong> é
                                o ID da sessão para validar. Um ID de sessão é válido se já existir
                                uma sessão com esse ID. O valor retornado deve ser <info>true</info> em caso de
                                sucesso, <info>false</info> em caso de falha.
  <info>callable</info>  <strong>$update_timestamp</strong>   Um callable com a seguinte assinatura:
                                <info>bool</info>update_timestamp<info>string</info><strong>$key</strong><info>string</info><strong>$val</strong>
                                
                                Este callback é executado quando uma sessão é atualizada. <strong>$key</strong> é o
                                ID da sessão, <strong>$val</strong> são os dados da sessão. O valor retornado deve
                                ser <info>true</info> em caso de sucesso, <info>false</info> em caso de falha.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<comment>See Also:</comment>
   * session.save_handler
     (diretiva de configuração)
    
   * session.serialize_handler
     (diretiva de configuração)
    
   * A <strong>register_shutdown_function()</strong>
   * The <strong>session_register_shutdown()</strong>
   * 
     Visite save_handler.inc
     para ver uma implementação completamente procedural
    


id: session_start
type: function
doc:
<comment>Description:</comment>
  Inicia uma nova sessão ou resume uma sessão existente
  
  <strong>session_start()</strong> cria uma sessão ou resume a sessão atual baseado em um id de sessão passado via
  GET ou POST, ou passado via cookie.
  
  Quando <strong>session_start()</strong> é chamada ou quando uma sessão inicia automaticamente, o PHP chamará os
  manipuladores open e read.  Eles serão manipuladores de gravação internos (built-in) fornecidos
  por padrão ou por extensões do PHP (como SQLite ou Memcached); ou podem ser manipuladores
  personalizados definidos por <strong>session_set_save_handler()</strong>. O callback read recuperará qualquer
  informação de sessão existente (armazenada em um formato serializado especial) e será
  deserializado e usado para preencher automaticamente a super global $_SESSION quando o callback
  read retornar de volta os dados salvos em sessão para o manipulador de sessão do PHP.
  
  Para utilizar uma sessão com nome, execute <strong>session_name()</strong> antes de executar <strong>session_start()</strong>.
  
  Quando session.use_trans_sid está habilitada, a função <strong>session_start()</strong> registrará um manipulador
  de saída interno para a reescrita da URL.
  
  Se um usuário usar <return>ob_gzhandler</return> ou similar com <strong>ob_start()</strong>, a ordem da função é importante para
  saída/output adequado.  Por exemplo, <return>ob_gzhandler</return> deve ser registrado antes de iniciar a sessão.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  Se informado, este é um array associativo de opções que vão sobrepor os que
                   estiverem configurados nas diretivas de configuração de sessão. As chaves não
                   devem incluir o prefixo <return>session.</return>.
                   
                   Além do conjunto de diretivas de configuração comum, a opção <return>read_and_close</return> pode
                   ser informada. Se definida como <info>true</info>, fará com que a sessão seja fechada
                   imediatamente depois de ser lida, evitando o bloqueio desnecessário caso os dados
                   da sessão não sejam alterados.

<comment>Return:</comment>
  <info>bool</info>  Esta função retorna <info>true</info> se uma sessão foi iniciada com sucesso, caso contrário <info>false</info>.

<comment>See Also:</comment>
   * $_SESSION
   * session.auto_start
     (diretiva de configuração)
    
   * <strong>session_id()</strong>


id: session_status
type: function
doc:
<comment>Description:</comment>
  Retorna o status atual da sessão
  
  <strong>session_status()</strong> é usada para retornar o status atual da sessão.

<comment>Return:</comment>
  <info>int</info>  <info>PHP_SESSION_DISABLED</info> se as sessões estiverem desabilitadas.<info>PHP_SESSION_NONE</info> se as sessões
       estiverem habilitadas, mas nenhuma existir.<info>PHP_SESSION_ACTIVE</info> se as sessões estiverem
       habilitadas, e uma existir.
       
       <info>PHP_SESSION_DISABLED</info> se as sessões estiverem desabilitadas.
       
       <info>PHP_SESSION_NONE</info> se as sessões estiverem habilitadas, mas nenhuma existir.
       
       <info>PHP_SESSION_ACTIVE</info> se as sessões estiverem habilitadas, e uma existir.

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


id: session_unset
type: function
doc:
<comment>Description:</comment>
  Libera todas as variáveis de sessão
  
  A função <strong>session_unset()</strong> libera todas as variáveis atualmente registradas na sessão.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: session_write_close
type: function
doc:
<comment>Description:</comment>
  Guarda os dados de sessão e fecha a sessão
  
  Fecha a sessão atual e guarda os dados.
  
  Os dados de sessão geralmente são guardados depois que o script termina, sem a necessidade de
  chamar <strong>session_write_close()</strong>; mas como dados de sessão são travados para evitar escritas
  concorrentes, apenas um script pode operar em uma sessão por vez. Ao usar iframe/framesets junto
  com sessões, os frames serão lidos um a um devido à esta trava. Pode-se reduzir o tempo necessário
  para carregar todos os frames fechando a sessão o mais cedo possível, assim que todas as
  alterações na variável de sessão tiverem sido feitas.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: set_error_handler
type: function
doc:
<comment>Description:</comment>
  Sets a user-defined error handler function
  
  Sets a user function (<strong>$callback</strong>) to handle errors in a script.
  
  This function can be used to define custom error handlers during runtime, for example in
  applications which need to do file/data cleanup when a critical error happens, or when triggering
  an error in response to certain conditions (using <strong>trigger_error()</strong>).
  
  It is important to remember that the standard PHP error handler is completely bypassed for the
  error types specified by <strong>$error_levels</strong>  unless the callback function returns <info>false</info>.
  <strong>error_reporting()</strong> settings will have no effect and the error handler will be called regardless -
  however, it's still possible to read the current value of error_reporting and act appropriately.
  
  Also note that it is the handler's responsibility to stop the script's execution if necessary by
  calling <strong>exit()</strong>. If the error-handler function returns, script execution will continue with the
  next statement after the one that caused an error.
  
  The following error types cannot be handled with a user defined function: <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> independent of where they were
  raised, and most of <info>E_STRICT</info> raised in the file where <strong>set_error_handler()</strong> is called.
  
  If errors occur before the script is executed (e.g. on file uploads) the  custom error handler
  cannot be called since it is not registered at that  time.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$callback</strong>      If <info>null</info> is passed, the handler is reset to its default state.
                                Otherwise, the handler is a callback with the following signature:
                                
                                
                                <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>
                                The first parameter, <strong>$errno</strong>, will be passed the level of the error
                                raised, as an integer. <strong>$errstr</strong> The second parameter, <strong>$errstr</strong>, will
                                be passed the error message, as a string. <strong>$errfile</strong> If the callback
                                accepts a third parameter, <strong>$errfile</strong>, it will be passed the filename
                                that the error was raised in, as a string. <strong>$errline</strong> If the callback
                                accepts a fourth parameter, <strong>$errline</strong>, it will be passed the line
                                number where the error was raised, as an integer. <strong>$errcontext</strong> If the
                                callback accepts a fifth parameter, <strong>$errcontext</strong>, it will be passed
                                an array that points to the active symbol table at the point the
                                error occurred. In other words, <strong>$errcontext</strong> will contain an array of
                                every variable that existed in the scope the error was triggered in.
                                User error handlers must not modify the error context.  This
                                parameter has been DEPRECATED as of PHP 7.2.0, and REMOVED as of PHP
                                8.0.0. If the function defines this parameter without a default, an
                                error of "too few arguments" will be raised when it is called.
                                
                                The first parameter, <strong>$errno</strong>, will be passed the level of the error
                                raised, as an integer.
                                
                                The second parameter, <strong>$errstr</strong>, will be passed the error message, as
                                a string.
                                
                                If the callback accepts a third parameter, <strong>$errfile</strong>, it will be
                                passed the filename that the error was raised in, as a string.
                                
                                If the callback accepts a fourth parameter, <strong>$errline</strong>, it will be
                                passed the line number where the error was raised, as an integer.
                                
                                If the callback accepts a fifth parameter, <strong>$errcontext</strong>, it will be
                                passed an array that points to the active symbol table at the point
                                the error occurred. In other words, <strong>$errcontext</strong> will contain an
                                array of every variable that existed in the scope the error was
                                triggered in. User error handlers must not modify the error context.
                                
                                This parameter has been DEPRECATED as of PHP 7.2.0, and REMOVED as
                                of PHP 8.0.0. If the function defines this parameter without a
                                default, an error of "too few arguments" will be raised when it is
                                called.
                                
                                If the function returns <info>false</info> then the normal error handler
                                continues.
  <info>int</info>            <strong>$errno</strong>         The first parameter, <strong>$errno</strong>, will be passed the level of the error
                                raised, as an integer.
  <info>string</info>         <strong>$errstr</strong>        The second parameter, <strong>$errstr</strong>, will be passed the error message, as
                                a string.
  <info>string</info>         <strong>$errfile</strong>       If the callback accepts a third parameter, <strong>$errfile</strong>, it will be
                                passed the filename that the error was raised in, as a string.
  <info>int</info>            <strong>$errline</strong>       If the callback accepts a fourth parameter, <strong>$errline</strong>, it will be
                                passed the line number where the error was raised, as an integer.
  <info>array</info>          <strong>$errcontext</strong>    If the callback accepts a fifth parameter, <strong>$errcontext</strong>, it will be
                                passed an array that points to the active symbol table at the point
                                the error occurred. In other words, <strong>$errcontext</strong> will contain an
                                array of every variable that existed in the scope the error was
                                triggered in. User error handlers must not modify the error context.
                                
                                This parameter has been DEPRECATED as of PHP 7.2.0, and REMOVED as
                                of PHP 8.0.0. If the function defines this parameter without a
                                default, an error of "too few arguments" will be raised when it is
                                called.
  <info>int</info>            <strong>$error_levels</strong>  Can be used to mask the triggering of the <strong>$callback</strong> function just
                                like the error_reporting ini setting  controls which errors are
                                shown. Without this mask set the <strong>$callback</strong> will be called for every
                                error regardless to the setting of the error_reporting setting.

<comment>Return:</comment>
  <info>callable|null</info>  Returns the previously defined error handler (if any). If the built-in error
                 handler is used <info>null</info> is returned. If the previous error handler was a class method,
                 this function will return an indexed array with the class and the method name.

<comment>See Also:</comment>
   * <class>ErrorException</class>
   * <strong>error_reporting()</strong>
   * <strong>restore_error_handler()</strong>
   * <strong>trigger_error()</strong>
   * error level constants


id: set_exception_handler
type: function
doc:
<comment>Description:</comment>
  Sets a user-defined exception handler function 
    
  
  Sets the default exception handler if an exception is not caught within a try/catch block.
  Execution will stop after the <strong>$callback</strong> is called.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$callback</strong>  The function to be called when an uncaught exception occurs. This
                            handler function needs to accept one parameter, which will be the
                            <class>Throwable</class> object that was thrown. Both <class>Error</class> and <class>Exception</class> implement the
                            <class>Throwable</class> interface. This is the handler signature:
                            
                            <info>void</info>handler<info>Throwable</info><strong>$ex</strong>
                            
                            <info>null</info> may be passed instead, to reset this handler to its default state.

<comment>Return:</comment>
  <info>callable|null</info>  Returns the previously defined exception handler, or <info>null</info> on error. If no previous
                 handler was defined, <info>null</info> is also returned.

<comment>See Also:</comment>
   * <strong>restore_exception_handler()</strong>
   * <strong>restore_error_handler()</strong>
   * <strong>error_reporting()</strong>
   * Exceptions


id: set_file_buffer
type: function
doc:
<comment>Description:</comment>
  Sinônimo de stream_set_write_buffer
  
  Esta função é um apelido para:  <strong>stream_set_write_buffer()</strong>.


id: set_include_path
type: function
doc:
<comment>Description:</comment>
  Sets the include_path configuration option
  
  Sets the include_path configuration option for the duration of the script.

<comment>Param:</comment>
  <info>string</info>  <strong>$include_path</strong>  The new value for the include_path

<comment>Return:</comment>
  <info>string|false</info>  Returns the old include_path on success ou <info>false</info> em caso de falha.

<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>
  Limits the maximum execution time
  
  Set the number of seconds a script is allowed to run. If this is reached, the script returns a
  fatal error. The default limit is 30 seconds or, if it exists, the <return>max_execution_time</return> value
  defined in the php.ini.
  
  When called, <strong>set_time_limit()</strong> restarts the timeout counter from zero. In other words, if the
  timeout is the default 30 seconds, and 25 seconds into script execution a call such as
  <return>set_time_limit(20)</return> is made, the script will run for a total of 45 seconds before timing out.

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>  The maximum execution time, in seconds. If set to zero, no time limit is imposed.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success, or <info>false</info> on failure.

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


id: setcookie
type: function
doc:
<comment>Description:</comment>
  Envia um cookie
  
  Assinatura alternativa disponível a partir do PHP 7.3.0 (sem suporte a parâmetros nomeados):
  
  A função <strong>setcookie()</strong> define um cookie para ser enviado juntamente com os cabeçalhos HTTP. Como
  outros cabeçalhos (headers), os cookies devem ser enviados antes de qualquer saída do seu script
  (isso é uma restrição do protocolo). O que quer dizer que você deve colocar chamadas a essa função
  antes de qualquer saída, incluindo as tags <return>\<html&gt;</return> e <return>\<head&gt;</return> assim como espaços em branco.
  
  Uma vez que os cookies foram setados, eles podem ser acessados no próximo carregamento da página
  através do array $_COOKIE. Os valores dos cookies também podem existir no $_REQUEST.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>                O nome do cookie.
  <info>string</info>  <strong>$value</strong>               O valor do cookie. Esse valor é guardado no computador do cliente;
                               não guarde informação sensível. Supondo que o <strong>$name</strong> seja
                               <return>'cookiename'</return>, o valor pode ser lido através de $_COOKIE['cookiename']
  <info>int</info>     <strong>$expires_or_options</strong>  O tempo para o cookie expirar. Esse valor é uma timestamp Unix,
                               portanto é o número de segundos desde a época (epoch). Um jeito de
                               configurar esse valor é por adicionando o número de segundos que o
                               cookie deve durar antes de expirar ao resultado da função <strong>time()</strong>. Por
                               exemplo, <return>time()+60*60*24*30</return> irá configurar o cookie para expirar em
                               30 dias. Outra opção é usar a função <strong>mktime()</strong>. Se configurado para <return>0</return>
                               ou omitido, o cookie vai expirar no final da sessão (ao navegador
                               fechar).
                               
                                Você pode ver que o parâmetro <strong>$expires_or_options</strong> recebe uma
                               timestamp Unix, ao contrário do formato de data <return>Wdy, DD-Mon-YYYY
                               HH:MM:SS GMT</return>, isso se dá porque o PHP faz essa conversão
                               internamente.
                               
                               Você pode ver que o parâmetro <strong>$expires_or_options</strong> recebe uma
                               timestamp Unix, ao contrário do formato de data <return>Wdy, DD-Mon-YYYY
                               HH:MM:SS GMT</return>, isso se dá porque o PHP faz essa conversão
                               internamente.
  <info>string</info>  <strong>$path</strong>                O caminho no servidor onde o cookie estará disponível. Se configurado
                               para <return>'/'</return>, o cookie estará disponível para todo o <strong>$domain</strong>. Se
                               configurado para o diretório <return>'/foo/'</return>, o cookie estará disponível
                               apenas dentro do diretório <return>/foo/</return> e todos os subdiretórios como
                               <return>/foo/bar/</return> do <strong>$domain</strong>. O valor padrão é o diretório atual onde o
                               cookie está sendo configurado.
  <info>string</info>  <strong>$domain</strong>              O (sub)domínio para qual o cookie estará disponível. Definindo para
                               um subdomínio (como <return>'www.example.com'</return>) deixará o cookie disponível
                               para aquele subdomínio e todos os outros sub-domínios abaixo dele
                               (exemplo w2.www.example.com). Para deixar o cookie disponível para
                               todo o domínio (incluindo todos os subdomínios dele), simplesmente
                               defina o valor para o nome do domínio (<return>'example.com'</return>, nesse caso).
                               
                               Browsers antigos ainda implementam a RFC 2109 e podem requerer um <return>.</return>
                               no início para funcionar com todos os subdomínios.
  <info>bool</info>    <strong>$secure</strong>              Indica que o cookie só poderá ser transmitido sob uma conexão segura
                               HTTPS do cliente. Quando configurado para <info>true</info>, o cookie será enviado
                               somente se uma conexão segura existir. No lado do servidor, fica por
                               conta do programador enviar esse tipo de cookie somente sob uma
                               conexão segura (ex respeitando $_SERVER["HTTPS"]).
  <info>bool</info>    <strong>$httponly</strong>            Quando for <info>true</info> o cookie será acessível somente sob o protocolo HTTP.
                               Isso significa que o cookie não será acessível por linguagens de
                               script, como JavaScript. É dito que essa configuração pode ajudar a
                               reduzir ou identificar roubos de identidade através de ataques do
                               tipo XSS (entretanto ela não é suportada por todos os browsers), mas
                               essa informação é constantemente discutida. Foi adicionada no PHP
                               5.2.0. <info>true</info> ou <info>false</info>
  <info>array</info>   <strong>$options</strong>             Um <info>array</info> associativo onde quaisquer chaves <return>expires</return>, <return>path</return>, <return>domain</return>,
                               <return>secure</return>, <return>httponly</return> e <return>samesite</return>. Se qualquer outra chave estiver
                               presente, um alerta <info>E_WARNING</info> é gerado. Os valores têm o mesmo efeito
                               como descrito acima, para os parâmetros de mesmo nome. O valor de
                               <return>samesite</return> deve ser <return>None</return>, <return>Lax</return> ou <return>Strict</return>. Se uma das opções não é
                               informada, os valores padrão são os mesmos valores padrão dos
                               parâmetros explícitos. Se <return>samesite</return> for omitido, o atributo SameSite
                               do cookie não será atribuído.

<comment>Return:</comment>
  <info>bool</info>  Se existe saída antes da chamada dessa função, <strong>setcookie()</strong> irá falhar e retornará <info>false</info>. Se
        a função <strong>setcookie()</strong> for executada com sucesso, ela retornará <info>true</info>. Isso não indica que o
        usuário aceitou o cookie.

<comment>See Also:</comment>
   * <strong>header()</strong>
   * <strong>setrawcookie()</strong>
   * Seção de cookies
   * RFC 6265
   * RFC 2109


id: setlocale
type: function
doc:
<comment>Description:</comment>
  Set locale information
  
  Alternative signature (not supported with named arguments):
  
  Sets locale information.
  
  The locale information is maintained per process, not per thread. If you are running PHP on a
  multithreaded server API , you may experience sudden changes in locale settings while a script is
  running, though the script itself never called  <strong>setlocale()</strong>. This happens due to other scripts
  running in different threads of the same process at the same time, changing the process-wide
  locale using <strong>setlocale()</strong>. On Windows, locale information is maintained per thread as of PHP 7.0.5.

<comment>Param:</comment>
  <info>int</info>     <strong>$category</strong>      <strong>$category</strong> is a named constant specifying the category of the functions
                         affected by the locale setting: <info>LC_ALL</info> for all of the below <info>LC_COLLATE</info> for
                         string comparison, see <strong>strcoll()</strong> <info>LC_CTYPE</info> for character classification and
                         conversion, for example <strong>ctype_alpha()</strong> <info>LC_MONETARY</info> for <strong>localeconv()</strong>
                         <info>LC_NUMERIC</info> for decimal separator (See also <strong>localeconv()</strong>) <info>LC_TIME</info> for date
                         and time formatting with <strong>strftime()</strong> <info>LC_MESSAGES</info> for system responses
                         (available if PHP was compiled with <return>libintl</return>)
                         
                         <info>LC_ALL</info> for all of the below
                         
                         <info>LC_COLLATE</info> for string comparison, see <strong>strcoll()</strong>
                         
                         <info>LC_CTYPE</info> for character classification and conversion, for example
                         <strong>ctype_alpha()</strong>
                         
                         <info>LC_MONETARY</info> for <strong>localeconv()</strong>
                         
                         <info>LC_NUMERIC</info> for decimal separator (See also <strong>localeconv()</strong>)
                         
                         <info>LC_TIME</info> for date and time formatting with <strong>strftime()</strong>
                         
                         <info>LC_MESSAGES</info> for system responses (available if PHP was compiled with
                         <return>libintl</return>)
  <info>string</info>  <strong>$locales</strong>       If <strong>$locales</strong> is the empty string <return>""</return>, the locale names will be set from the
                         values of environment variables with the same names as the above
                         categories, or from "LANG".
                         
                         If <strong>$locales</strong> is <return>"0"</return>, the locale setting is not affected, only the current
                         setting is returned.
                         
                         If <strong>$locales</strong> is followed by additional parameters then each parameter is
                         tried to be set as new locale until success. This is useful if a locale is
                         known under different names on different systems or for providing a
                         fallback for a possibly not available locale.
  <info>string</info>  <strong>$rest</strong>          Optional string parameters to try as locale settings until success.
  <info>array</info>   <strong>$locale_array</strong>  Each array element is tried to be set as new locale until success. This is
                         useful if a locale is known under different names on different systems or
                         for providing a fallback for a possibly not available locale.

<comment>Return:</comment>
  <info>string|false</info>  Returns the new current locale, or <info>false</info> if the locale functionality is not
                implemented on your platform, the specified locale does not exist or the category
                name is invalid.
                
                An invalid category name also causes a warning message. Category/locale names can be
                found in RFC 1766 and ISO 639. Different systems have different naming schemes for
                locales.
                
                The return value of <strong>setlocale()</strong> depends on the system that PHP is running.  It
                returns exactly what the system <return>setlocale</return> function returns.


id: setrawcookie
type: function
doc:
<comment>Description:</comment>
  Send a cookie without urlencoding the cookie value
  
  Alternative signature available as of PHP 7.3.0 (not supported with named parameters):
  
  <strong>setrawcookie()</strong> is exactly the same as <strong>setcookie()</strong> except that the cookie value will not be
  automatically urlencoded when sent to the browser.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: settype
type: function
doc:
<comment>Description:</comment>
  Define o tipo de uma variável
  
  Define o tipo da variável <strong>$var</strong> para <strong>$type</strong>.

<comment>Param:</comment>
  <info>mixed</info>   <strong>$var</strong>   A variável a ser convertida.
  <info>string</info>  <strong>$type</strong>  Os valores possíveis para <strong>$type</strong> são:  "boolean" ou "bool"  "integer" ou "int"
                 "float" ou "double"  "string"  "array"  "object"  "null"
                 
                 "boolean" ou "bool"
                 
                 "integer" ou "int"
                 
                 "float" ou "double"
                 
                 "string"
                 
                 "array"
                 
                 "object"
                 
                 "null"

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<comment>See Also:</comment>
   * <strong>gettype()</strong>
   * Conversão de tipos
   * Manipulação de tipos


id: sha1
type: function
doc:
<comment>Description:</comment>
  Calculate the sha1 hash of a string
  
  Calculates the sha1 hash of <strong>$string</strong> using the US Secure Hash Algorithm 1.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string.
  <info>bool</info>    <strong>$binary</strong>  If the optional <strong>$binary</strong> is set to <info>true</info>, then the sha1 digest is instead returned
                   in raw binary format with a length of 20, otherwise the returned value is a
                   40-character hexadecimal number.

<comment>Return:</comment>
  <info>string</info>  Returns the sha1 hash as a string.

<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>
  Calcula a hash sha1 de um arquivo
  
  Calcula a hash sha1 do arquivo especificado por <strong>$filename</strong> usando o US Secure Hash Algorithm 1, e
  retorna esta hash. A hash é um número hexadecimal de 40 caracteres.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  O nome do arquivo de onde a hash será obtida.
  <info>bool</info>    <strong>$binary</strong>    Quando <info>true</info>, retorna a hash no formato binário bruto com um tamanho de 20
                     caracteres.

<comment>Return:</comment>
  <info>string|false</info>  Retorna uma string em caso de sucesso, <info>false</info> caso contrário.

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


id: shell_exec
type: function
doc:
<comment>Description:</comment>
  Executa um comando via shell e retorna a saída inteira como uma string
  
  Esta função é identica ao operador crase.
  
  No Windows, o tubo subjacente é aberto em modo texto o que pode fazer com que a função falhe para
  saída binária. Considere usar <strong>popen()</strong> alternativamente para estes casos.

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>  O comando que será executado.

<comment>Return:</comment>
  <info>string|false|null</info>  Uma <info>string</info> contendo a saída do comando executado, <info>false</info> se o tubo não puder ser
                     estabelecido ou <info>null</info> se um erro ocorrer ou o comando não gerar saída.
                     
                     Esta função pode retornar <info>null</info> quando um erro ocorre ou quando o programa não
                     produz saída. Não é possível detectar falhas de execução usando esta função.
                     <strong>exec()</strong> deve ser usada quando o acesso ao código de saída do programa é
                     requerido.

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


id: shm_attach
type: function
doc:
<comment>Description:</comment>
  Creates or open a shared memory segment
  
  <strong>shm_attach()</strong> returns an id that can be used to access the System V shared memory with the given
  <strong>$key</strong>, the first call creates the shared memory segment with  <strong>$size</strong> and the optional perm-bits
  <strong>$permissions</strong>.
  
  A second call to <strong>shm_attach()</strong> for the same <strong>$key</strong> will return a different <class>SysvSharedMemory</class> instance,
  but both instances access the same underlying shared memory. <strong>$size</strong> and <strong>$permissions</strong> will be
  ignored.

<comment>Param:</comment>
  <info>int</info>       <strong>$key</strong>          A numeric shared memory segment ID
  <info>int|null</info>  <strong>$size</strong>         The memory size. If not provided, default to the <return>sysvshm.init_mem</return> in the
                          php.ini, otherwise 10000 bytes.
  <info>int</info>       <strong>$permissions</strong>  The optional permission bits. Default to 0666.

<comment>Return:</comment>
  <info>SysvSharedMemory|false</info>  Returns a <class>SysvSharedMemory</class> instance on success,  ou <info>false</info> em caso de
                          falha.

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


id: shm_detach
type: function
doc:
<comment>Description:</comment>
  Disconnects from shared memory segment
  
  <strong>shm_detach()</strong> disconnects from the shared memory given by the <strong>$shm</strong> created by <strong>shm_attach()</strong>.
  Remember, that shared memory still exist in the Unix system and the data is still present.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  A shared memory segment obtained from <strong>shm_attach()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Returns a variable from shared memory
  
  <strong>shm_get_var()</strong> returns the variable with a given <strong>$key</strong>, in the given shared memory segment. The
  variable is still present in the shared memory.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  A shared memory segment obtained from <strong>shm_attach()</strong>.
  <info>int</info>               <strong>$key</strong>  The variable key.

<comment>Return:</comment>
  <info>mixed</info>  Returns the variable with the given key.

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


id: shm_has_var
type: function
doc:
<comment>Description:</comment>
  Check whether a specific entry exists
  
  Checks whether a specific key exists inside a shared memory segment.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  A shared memory segment obtained from <strong>shm_attach()</strong>.
  <info>int</info>               <strong>$key</strong>  The variable key.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the entry exists, otherwise <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>
  Inserts or updates a variable in shared memory
  
  <strong>shm_put_var()</strong> inserts or updates the <strong>$value</strong> with the given <strong>$key</strong>.
  
  Warnings (<info>E_WARNING</info> level) will be issued if <strong>$shm</strong> is not a valid SysV shared memory index or if
  there was not enough shared memory remaining to complete your request.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>    A shared memory segment obtained from <strong>shm_attach()</strong>.
  <info>int</info>               <strong>$key</strong>    The variable key.
  <info>mixed</info>             <strong>$value</strong>  The variable. All variable types that <strong>serialize()</strong> supports may be used:
                            generally this means all types except for resources and some internal
                            objects that cannot be serialized.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: shm_remove
type: function
doc:
<comment>Description:</comment>
  Removes shared memory from Unix systems
  
  <strong>shm_remove()</strong> removes the shared memory <strong>$shm</strong>. All data will be destroyed.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  A shared memory segment obtained from <strong>shm_attach()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: shm_remove_var
type: function
doc:
<comment>Description:</comment>
  Removes a variable from shared memory
    
  
  Removes a variable with a given <strong>$key</strong> and frees the occupied memory.

<comment>Param:</comment>
  <info>SysvSharedMemory</info>  <strong>$shm</strong>  A shared memory segment obtained from <strong>shm_attach()</strong>.
  <info>int</info>               <strong>$key</strong>  The variable key.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: shmop_close
type: function
doc:
<comment>Description:</comment>
  Fecha um bloco de memória compartilhada
  
  Esta função não tem efeito. Antes do PHP 8.0.0, esta função era usada para fechar o recurso.
  
  <strong>shmop_close()</strong> é usada para fechar um bloco de memória compartilhada.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>  O recurso de bloco de memória compartilhada criado por <strong>shmop_open()</strong>

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.

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


id: shmop_delete
type: function
doc:
<comment>Description:</comment>
  Deleta um bloco de memória compartilhada
  
  <strong>shmop_delete()</strong> é usada para deletar um bloco de memória compartilhada.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>  O recurso de bloco de memória compartilhada criado por <strong>shmop_open()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: shmop_open
type: function
doc:
<comment>Description:</comment>
  Create or open shared memory block
  
  <strong>shmop_open()</strong> can create or open a shared memory block.

<comment>Param:</comment>
  <info>int</info>     <strong>$key</strong>          System's id for the shared memory block. Can be passed as a decimal or hex.
  <info>string</info>  <strong>$mode</strong>         The flags that you can use:  "a" for access (sets SHM_RDONLY for shmat) use
                        this flag when you need to open an existing shared memory segment for read
                        only  "c" for create (sets IPC_CREATE) use this flag when you need to create
                        a new shared memory segment or if a segment with the same key exists, try to
                        open it for read and write  "w" for read & write access use this flag when
                        you need to read and write to a shared memory segment, use this flag in most
                        cases.  "n" create a new memory segment (sets IPC_CREATE|IPC_EXCL) use this
                        flag when you want to create a new shared memory segment but if one already
                        exists with the same flag, fail. This is useful for security purposes, using
                        this you can prevent race condition exploits.
                        
                        "a" for access (sets SHM_RDONLY for shmat) use this flag when you need to
                        open an existing shared memory segment for read only
                        
                        "c" for create (sets IPC_CREATE) use this flag when you need to create a new
                        shared memory segment or if a segment with the same key exists, try to open
                        it for read and write
                        
                        "w" for read & write access use this flag when you need to read and write to
                        a shared memory segment, use this flag in most cases.
                        
                        "n" create a new memory segment (sets IPC_CREATE|IPC_EXCL) use this flag
                        when you want to create a new shared memory segment but if one already
                        exists with the same flag, fail. This is useful for security purposes, using
                        this you can prevent race condition exploits.
  <info>int</info>     <strong>$permissions</strong>  The permissions that you wish to assign to your memory segment, those are
                        the same as permission for a file. Permissions need to be passed in octal
                        form, like for example <return>0644</return>
  <info>int</info>     <strong>$size</strong>         The size of the shared memory block you wish to create in bytes

<comment>Return:</comment>
  <info>Shmop|false</info>  On success <strong>shmop_open()</strong> will return a <class>Shmop</class> instance that you can use to access the
               shared memory segment you've created. <info>false</info> is returned on failure.

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


id: shmop_read
type: function
doc:
<comment>Description:</comment>
  Read data from shared memory block
  
  <strong>shmop_read()</strong> will read a string from shared memory block.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>   The shared memory block identifier created by  <strong>shmop_open()</strong>
  <info>int</info>    <strong>$offset</strong>  Offset from which to start reading; must be greater than or equal to zero and less
                  than or equal to the actual size of the shared memory segment.
  <info>int</info>    <strong>$size</strong>    The number of bytes to read; must be greater than or equal to zero, and the sum of
                  <strong>$offset</strong> and <strong>$size </strong> must be less than or equal to the actual size of the shared
                  memory segment. <return>0</return> reads shmop_size($shmid) - $start bytes.

<comment>Return:</comment>
  <info>string</info>  Returns the data ou <info>false</info> em caso de falha.

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


id: shmop_size
type: function
doc:
<comment>Description:</comment>
  Obtém o tamanho do bloco de memória compartilhada 
  
  <strong>shmop_size()</strong> é usada para pegar o tamanho, em bytes do bloco de memória compartilhada.

<comment>Param:</comment>
  <info>Shmop</info>  <strong>$shmop</strong>  O recurso do bloco de memória compartilhada criado por <strong>shmop_open()</strong>

<comment>Return:</comment>
  <info>int</info>  Retorna um inteiro, que representa o número de bytes de bloco ocupados pela memória
       compartilhada.


id: shmop_write
type: function
doc:
<comment>Description:</comment>
  Write data into shared memory block
  
  <strong>shmop_write()</strong> will write a string into shared memory block.

<comment>Param:</comment>
  <info>Shmop</info>   <strong>$shmop</strong>   The shared memory block identifier created by  <strong>shmop_open()</strong>
  <info>string</info>  <strong>$data</strong>    A string to write into shared memory block
  <info>int</info>     <strong>$offset</strong>  Specifies where to start writing data inside the shared memory segment. The
                   offset must be greater than or equal to zero and less than or equal to the actual
                   size of the shared memory segment.

<comment>Return:</comment>
  <info>int</info>  The size of the written <strong>$data</strong>.

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


id: show_source
type: function
doc:
<comment>Description:</comment>
  Sinônimo de highlight_file
  
  Esta função é um apelido para:  <strong>highlight_file()</strong>.


id: shuffle
type: function
doc:
<comment>Description:</comment>
  Embaralha um array
  
  Essa função embaralha (mistura de forma aleatória os elementos de) um array.
  
  Esta função não gera valores criptograficamente seguros e não deve ser usada para propósitos
  criptográficos ou fins que exijam que os valores retornados sejam impossíveis de adivinhar.
  
  Se aleatoriedade criptograficamente segura for necessária, a classe <class>Random\Randomizer</class> pode ser
  usada com o mecanismo <class>Random\Engine\Secure</class>. Para casos de uso simples, as funções <strong>random_int()</strong> e
  <strong>random_bytes()</strong> fornecem uma API conveniente e segura que é garantida pelo CSPRNG do sistema
  operacional.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  O array.

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <info>true</info>.

<comment>See Also:</comment>
   * <strong>Random\Randomizer::shuffleArray()</strong>
   * <strong>Random\Randomizer::shuffleBytes()</strong>
   * <strong>Random\Randomizer::pickArrayKeys()</strong>
   * Comparação entre as funções de ordenação de array


id: simdjson_decode
type: function
doc:
<comment>Description:</comment>
  Decodes a JSON string
  
  Takes a JSON encoded string and converts it into a PHP value. This uses a faster Simultaneous
  Instruction, Multiple Data implementation than <strong>json_decode()</strong> when it is supported by the computer
  architecture.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>         The <strong>$json</strong> <info>string</info> being decoded.
                        
                        This function only works with UTF-8 encoded strings.
                        
                        This function parses valid inputs which <strong>json_decode()</strong> can decode, provided
                        that they are less than 4 GiB long.
  <info>bool</info>    <strong>$associative</strong>  When <info>true</info>, JSON objects will be returned as associative <info>array</info>s; when <info>false</info>,
                        JSON objects will be returned as <info>object</info>s.
  <info>int</info>     <strong>$depth</strong>        Maximum nesting depth of the structure being decoded. The value must be
                        greater than <return>0</return>, and less than or equal to <return>2147483647</return>.
                         Callers should use reasonably small values, because larger depths require
                        more buffer space and will increase the recursion depth, unlike the current
                        <strong>json_decode()</strong> implementation.

<comment>Return:</comment>
  <info>mixed</info>  Returns the value encoded in <strong>$json</strong> in appropriate PHP type. Values <return>true</return>, <return>false</return> and <return>null</return> are
         returned as <info>true</info>, <info>false</info> and <info>null</info> respectively.

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


id: simdjson_is_valid
type: function
doc:
<comment>Description:</comment>
  Check if a JSON string is valid
  
  Takes a JSON encoded string and returns true if it is valid.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>   The <strong>$json</strong> <info>string</info> being validated.
                  
                  This function only works with UTF-8 encoded strings.
                  
                  This function validates inputs which <strong>json_decode()</strong> can decode, provided that they
                  are less than 4 GiB long.
  <info>int</info>     <strong>$depth</strong>  Maximum nesting depth of the structure being validated. The value must be greater
                  than <return>0</return>, and less than or equal to <return>2147483647</return>.
                   Callers should use reasonably small values, because larger depths require more
                  buffer space and will increase the recursion depth, unlike the current
                  <strong>json_decode()</strong> implementation.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$json</strong> is a valid JSON string, <info>false</info> otherwise.

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


id: simdjson_key_count
type: function
doc:
<comment>Description:</comment>
  Returns the value at a JSON pointer.
  
  Count the number of elements of the object/array found at the requested JSON pointer.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>                  The <strong>$json</strong> <info>string</info> being queried.
  <info>string</info>  <strong>$key</strong>                   The JSON pointer <info>string</info>.
  <info>int</info>     <strong>$depth</strong>                 Maximum nesting depth of the structure being validated. The value
                                 must be greater than <return>0</return>, and less than or equal to <return>2147483647</return>.
                                  Callers should use reasonably small values, because larger depths
                                 require more buffer space and will increase the recursion depth,
                                 unlike the current <strong>json_decode()</strong> implementation.
  <info>bool</info>    <strong>$throw_if_uncountable</strong>  When true, a <class>SimdJsonException</class> will be thrown instead of returning
                                 0 when the value the JSON pointer points to is neither an object
                                 nor an array.

<comment>Return:</comment>
  <info>int</info>  Returns an <info>int</info> with the number of elements of the value at the given JSON pointer.


id: simdjson_key_exists
type: function
doc:
<comment>Description:</comment>
  Check if the JSON contains the value referred to by a JSON pointer.
  
  Count the number of elements of the object/array found at the requested JSON pointer.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>                  The <strong>$json</strong> <info>string</info> being queried.
  <info>string</info>  <strong>$key</strong>                   The JSON pointer <info>string</info>.
  <info>int</info>     <strong>$depth</strong>                 Maximum nesting depth of the structure being validated. The value
                                 must be greater than <return>0</return>, and less than or equal to <return>2147483647</return>.
                                  Callers should use reasonably small values, because larger depths
                                 require more buffer space and will increase the recursion depth,
                                 unlike the current <strong>json_decode()</strong> implementation.
  <info></info>        <strong>$throw_if_uncountable</strong>  When true, a <class>SimdJsonException</class> will be thrown instead of returning
                                 0 when the value the JSON pointer points to is neither an object
                                 nor an array.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the JSON pointer is valid and refers to a value found within a valid JSON
        string. Returns <info>false</info> if the JSON is valid but does not contain the JSON pointer.


id: simdjson_key_value
type: function
doc:
<comment>Description:</comment>
  Decodes the value of a JSON string located at the requested JSON pointer.
  
  Decodes and returns the value found at the requested JSON pointer.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>         The <strong>$json</strong> <info>string</info> being queried and decoded.
                        
                        This function only works with UTF-8 encoded strings.
                        
                        This function parses valid inputs which <strong>json_decode()</strong> can decode, provided
                        that they are less than 4 GiB long.
  <info>string</info>  <strong>$key</strong>          The JSON pointer <info>string</info>.
  <info>bool</info>    <strong>$associative</strong>  When <info>true</info>, JSON objects will be returned as associative <info>array</info>s; when <info>false</info>,
                        JSON objects will be returned as <info>object</info>s.
  <info>int</info>     <strong>$depth</strong>        Maximum nesting depth of the structure being decoded. The value must be
                        greater than <return>0</return>, and less than or equal to <return>2147483647</return>.
                         Callers should use reasonably small values, because larger depths require
                        more buffer space and will increase the recursion depth, unlike the current
                        <strong>json_decode()</strong> implementation.

<comment>Return:</comment>
  <info>mixed</info>  Returns the part of the value encoded in <strong>$json</strong> that <strong>$key</strong> refers to in appropriate PHP type.
         Values <return>true</return>, <return>false</return> and <return>null</return> are returned as <info>true</info>, <info>false</info> and <info>null</info> respectively.

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


id: similar_text
type: function
doc:
<comment>Description:</comment>
  Calcula a similaridade entre duas strings
  
  Calcula a similaridade entre duas strings como descrito em Programming Classics: Implementing the
  World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Note que esta implementação não usa uma
  pilha como no pseudo-código de Oliver, mas chamadas recursivas que podem ou não acelerar todo o
  processo. Note também que a complexidade deste algoritmo é O(N**3) onde N é o tamanho da string
  mais longa.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  A primeira string.
  <info>string</info>  <strong>$string2</strong>  A segunda string.
                    
                    Trocar a <strong>$string1</strong> de lugar com a <strong>$string2</strong> pode gerar um resultado diferente;
                    veja o exemplo abaixo.
  <info>float</info>   <strong>$percent</strong>  Ao passar referência como terceiro argumento, <strong>similar_text()</strong> irá calcular a
                    similaridade em percentual, dividindo o resultado de <strong>similar_text()</strong> percentual
                    média de comprimentos das strings fornecidas vezes <return>100</return>.

<comment>Return:</comment>
  <info>int</info>  Retorna o número de caracteres correspondentes em ambas as strings.
       
       O número de caracteres correspondentes é calculado encontrando-se a primeira substring comum
       mais longa, e depois fazendo o mesmo para os prefixos e sufixos, recursivamente. Os
       comprimentos de todas as substrings comuns encontradas são somados.

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


id: simplexml_import_dom
type: function
doc:
<comment>Description:</comment>
  Recebe um objeto SimpleXMLElement de um nó DOM
  
  Esta função recebe um nó de um documento DOM e o transforma em um nó SimpleXML. O novo objeto pode
  ser utilizado como um elemento SimpleXML nativo.

<comment>Param:</comment>
  <info>SimpleXMLElement|DOMNode</info>  <strong>$node</strong>        Um nó DOM
  <info>string|null</info>               <strong>$class_name</strong>  Pode-se utilizar o parâmetro opcional
                                         <strong>simplexml_import_dom()</strong> para retornar um objeto da classe
                                         especificada. A classe deve estender a classe
                                         <info>SimpleXMLElement</info>.

<comment>Return:</comment>
  <info>SimpleXMLElement|null</info>  Retorna um <info>SimpleXMLElement</info> ou <info>null</info> em caso de falha.

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


id: simplexml_load_file
type: function
doc:
<comment>Description:</comment>
  Interpreta um arquivo XML e o transforma em um objeto
    
  
  Converte o documento XML bem-formado no arquivo indicado em um objeto.

<comment>Param:</comment>
  <info>string</info>       <strong>$filename</strong>             Caminho para o arquivo XML
  <info>string|null</info>  <strong>$class_name</strong>           É possível utilizar o parâmetro opcional <strong>simplexml_load_file()</strong>
                                     para retornar um objeto da classe especificada. Esta classe
                                     deve estender <info>SimpleXMLElement</info>.
  <info>int</info>          <strong>$options</strong>              Bit a bit <return>OR</return> das constantes de opções da libxml.
  <info>string</info>       <strong>$namespace_or_prefix</strong>  Prefixo ou URI do namespace.
  <info>bool</info>         <strong>$is_prefix</strong>            <info>true</info> se <strong>$namespace_or_prefix</strong> for um prefixo, <info>false</info> se for URI;
                                     o padrão é <info>false</info>.

<comment>Return:</comment>
  <info>SimpleXMLElement|false</info>  Retorna um <info>objeto</info> da classe <info>SimpleXMLElement</info> com propriedades contendo os
                          dados do documento XML, ou <info>false</info> em caso de falha.
                          
                          Esta função pode
                          retornar o valor booleano <info>false</info>, mas também pode retornar um valor não
                          booleano que pode ser
                          avaliado como <info>false</info>. Leia a seção sobre Booleanos para mais
                          informações. Use o operador
                          === para testar o valor retornado por esta
                          função.

<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>
  Interpreta uma string XML e a transforma em um objeto
    
  
  Recebe uma string XML bem-formada e a retorna como um objeto.

<comment>Param:</comment>
  <info>string</info>       <strong>$data</strong>                 Uma string XML bem-formada
  <info>string|null</info>  <strong>$class_name</strong>           Pode-se utilizar o parâmetro opcional <strong>simplexml_load_string()</strong>
                                     para retornar um objeto da classe especificada. Esta classe
                                     deve estender <info>SimpleXMLElement</info>.
  <info>int</info>          <strong>$options</strong>              Bit a bit <return>OR</return> das constantes de opções da libxml.
  <info>string</info>       <strong>$namespace_or_prefix</strong>  Prefixo ou URI do namespace.
  <info>bool</info>         <strong>$is_prefix</strong>            <info>true</info> se <strong>$namespace_or_prefix</strong> for um prefixo, <info>false</info> se for URI;
                                     o padrão é <info>false</info>.

<comment>Return:</comment>
  <info>SimpleXMLElement|false</info>  Retorna um <info>objeto</info> da classe <info>SimpleXMLElement</info> com propriedades contendo os
                          dados do documento XML, ou <info>false</info> em caso de falha.
                          
                          Esta função pode
                          retornar o valor booleano <info>false</info>, mas também pode retornar um valor não
                          booleano que pode ser
                          avaliado como <info>false</info>. Leia a seção sobre Booleanos para mais
                          informações. Use o operador
                          === para testar o valor retornado por esta
                          função.

<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>
  Seno
  
  <strong>sin()</strong> retorna o seno do parâmetro <strong>$num</strong>. O argumento <strong>$num</strong> deve estar em radianos.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  O valor em radianos

<comment>Return:</comment>
  <info>float</info>  O seno do <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>
  Seno hiperbólico
  
  Retorna o seno hiperbólico de <strong>$num</strong>, definido como <return>(exp($num) - exp(-$num))/2</return>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  O argumento para processar

<comment>Return:</comment>
  <info>float</info>  O seno hiperbólico de <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>
  Sinônimo de count
  
  Esta função é um apelido para:  <strong>count()</strong>.


id: sleep
type: function
doc:
<comment>Description:</comment>
  Atrasa a execução
  
  Atrasa a execução do programa pelo número de segundos informado no parâmetro <strong>$seconds</strong>.
  
  Para atrasar a execução do programa por uma fração de um segundo, use a função <strong>usleep()</strong> pois a
  função <strong>sleep()</strong> espera um número <info>int</info>. Por exemplo sleep(0.25) irá pausar a execução do programa por
  <return>0</return> segundo.

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>  Tempo de parada em segundos (deve ser maior ou igual a <return>0</return>).

<comment>Return:</comment>
  <info>int</info>  Retorna zero em caso de sucesso.
       
       Se a chamada foi interrompida por um sinal, a função <strong>sleep()</strong> retorna um valor não-zero. No
       Windows, este valor será sempre <return>192</return> (o valor da constante <info>WAIT_IO_COMPLETION</info> dentro da API do
       Windows). Em outras plataformas, o valor de retorno será o número de segundos que faltam para
       terminar a parada.

<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>
  Fetch an SNMP object
  
  The <strong>snmp2_get()</strong> function is used to read the value of an SNMP object specified by the <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The SNMP agent.
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error.

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


id: snmp2_getnext
type: function
doc:
<comment>Description:</comment>
  Fetch the SNMP object which follows the given object id
  
  The <strong>snmp2_get_next()</strong> function is used to read the value of the SNMP object that follows the
  specified <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id which precedes the wanted one.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error. In case of an error, an E_WARNING
         message is shown.

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


id: snmp2_real_walk
type: function
doc:
<comment>Description:</comment>
  Return all objects including their respective object ID within the specified one
  
  The <strong>snmp2_real_walk()</strong> function is used to traverse over a number of SNMP objects starting from
  <strong>$object_id</strong> and return not only their values but also their object ids.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id which precedes the wanted one.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array of the SNMP object ids and their values on success or
               <info>false</info> on error. In case of an error, an E_WARNING message is shown.

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


id: snmp2_set
type: function
doc:
<comment>Description:</comment>
  Set the value of an SNMP object
  
  <strong>snmp2_set()</strong> is used to set the value of an SNMP object specified by the <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The write community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id.
  <info>array|string</info>  <strong>$type</strong>       O MIB define o tipo de cada ID de objeto. Deve ser especificado como um
                            único caractere da lista abaixo.
                            
                            Se <info>OPAQUE_SPECIAL_TYPES</info> foi definida ao compilar a biblioteca SNMP, os
                            seguintes tipos também são válidos:
                            
                            A maioria destes tipos usará o tipo ASN.1 correspondente óbvio. 's',
                            'x', 'd' e 'b' são todas maneiras diferentes de especificar um valor
                            OCTET STRING e o tipo sem sinal 'u' também é usado para lidar com
                            valores Gauge32.
                            
                            Se os arquivos MIB forem carregados na árvore MIB com "snmp_read_mib" ou
                            ao especificar isso na configuração da libsnmp, '=' pode ser usado como
                            o parâmetro <strong>$type</strong> para todos os IDs de objeto, pois o tipo pode ser lido
                            automaticamente a partir do MIB.
                            
                            Note que existem duas maneiras de definir uma variável do tipo BITS
                            como, por exemplo, "SYNTAX    BITS {telnet(0), ftp(1), http(2), icmp(3),
                            snmp(4), ssh(5), https(6)}":
                            
                            Usando o tipo "b" e uma lista de números binários. Este método não é
                            recomendado, pois a consulta GET para o mesmo OID retornaria, por
                            exemplo, 0xF8.
                            
                            Usando o tipo "x" e um número hexadecimal, mas sem (!) o prefixo "0x"
                            comum.
                            
                            Consulte a seção de exemplos para obter mais detalhes.
  <info>array|string</info>  <strong>$value</strong>      The new value.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.
        
        If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet.
        Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or
        invalid OID is specified the warning probably reads "Could not add variable".

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


id: snmp2_walk
type: function
doc:
<comment>Description:</comment>
  Fetch all the SNMP objects from an agent
  
  <strong>snmp2_walk()</strong> function is used to read all the values from an SNMP agent specified by the
  <strong>$hostname</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  If <info>null</info>, <strong>$object_id</strong> is taken as the root of the SNMP objects tree and
                            all objects under that tree are returned as an array.
                            
                            If <strong>$object_id</strong> is specified, all the SNMP objects below that <strong>$object_id</strong>
                            are returned.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of SNMP object values starting from the <strong>$object_id</strong> as root or <info>false</info>
               on error.

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


id: snmp3_get
type: function
doc:
<comment>Description:</comment>
  Fetch an SNMP object
  
  The <strong>snmp3_get()</strong> function is used to read the value of an SNMP object specified by the <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return>, or
                                     <return>"SHA512"</return>)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the privacy protocol (DES or AES)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           The SNMP object id.
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error.

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


id: snmp3_getnext
type: function
doc:
<comment>Description:</comment>
  Fetch the SNMP object which follows the given object id
  
  The <strong>snmp3_getnext()</strong> function is used to read the value of the SNMP object that follows the
  specified <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return>, or
                                     <return>"SHA512"</return>)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the privacy protocol (DES or AES)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           The SNMP object id.
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error. In case of an error, an E_WARNING
         message is shown.

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


id: snmp3_real_walk
type: function
doc:
<comment>Description:</comment>
  Return all objects including their respective object ID within the specified one
  
  The <strong>snmp3_real_walk()</strong> function is used to traverse over a number of SNMP objects starting from
  <strong>$object_id</strong> and return not only their values but also their object ids.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (MD5 or SHA)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the authentication protocol (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return>, or
                                     <return>"SHA512"</return>)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           The SNMP object id.
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array of the SNMP object ids and their values on success or
               <info>false</info> on error. In case of an error, an E_WARNING message is shown.

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


id: snmp3_set
type: function
doc:
<comment>Description:</comment>
  Set the value of an SNMP object
  
  <strong>snmp3_set()</strong> is used to set the value of an SNMP object specified by the <strong>$object_id</strong>.
  
  Even if the security level does not use an auth or priv protocol/password valid values have to be
  specified.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (MD5 or SHA)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the privacy protocol (DES or AES)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           The SNMP object id.
  <info>array|string</info>  <strong>$type</strong>                O MIB define o tipo de cada ID de objeto. Deve ser especificado
                                     como um único caractere da lista abaixo.
                                     
                                     Se <info>OPAQUE_SPECIAL_TYPES</info> foi definida ao compilar a biblioteca
                                     SNMP, os seguintes tipos também são válidos:
                                     
                                     A maioria destes tipos usará o tipo ASN.1 correspondente óbvio.
                                     's', 'x', 'd' e 'b' são todas maneiras diferentes de
                                     especificar um valor OCTET STRING e o tipo sem sinal 'u' também
                                     é usado para lidar com valores Gauge32.
                                     
                                     Se os arquivos MIB forem carregados na árvore MIB com
                                     "snmp_read_mib" ou ao especificar isso na configuração da
                                     libsnmp, '=' pode ser usado como o parâmetro <strong>$type</strong> para todos
                                     os IDs de objeto, pois o tipo pode ser lido automaticamente a
                                     partir do MIB.
                                     
                                     Note que existem duas maneiras de definir uma variável do tipo
                                     BITS como, por exemplo, "SYNTAX    BITS {telnet(0), ftp(1),
                                     http(2), icmp(3), snmp(4), ssh(5), https(6)}":
                                     
                                     Usando o tipo "b" e uma lista de números binários. Este método
                                     não é recomendado, pois a consulta GET para o mesmo OID
                                     retornaria, por exemplo, 0xF8.
                                     
                                     Usando o tipo "x" e um número hexadecimal, mas sem (!) o
                                     prefixo "0x" comum.
                                     
                                     Consulte a seção de exemplos para obter mais detalhes.
  <info>array|string</info>  <strong>$value</strong>               The new value
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.
        
        If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet.
        Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or
        invalid OID is specified the warning probably reads "Could not add variable".


id: snmp3_walk
type: function
doc:
<comment>Description:</comment>
  Fetch all the SNMP objects from an agent
  
  <strong>snmp3_walk()</strong> function is used to read all the values from an SNMP agent specified by the
  <strong>$hostname</strong>.
  
  Even if the security level does not use an auth or priv protocol/password valid values have to be
  specified.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>            The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$security_name</strong>       the security name, usually some kind of username
  <info>string</info>        <strong>$security_level</strong>      the security level (noAuthNoPriv|authNoPriv|authPriv)
  <info>string</info>        <strong>$auth_protocol</strong>       the authentication protocol (<return>"MD5"</return>, <return>"SHA"</return>, <return>"SHA256"</return>, or
                                     <return>"SHA512"</return>)
  <info>string</info>        <strong>$auth_passphrase</strong>     the authentication pass phrase
  <info>string</info>        <strong>$privacy_protocol</strong>    the privacy protocol (DES or AES)
  <info>string</info>        <strong>$privacy_passphrase</strong>  the privacy pass phrase
  <info>array|string</info>  <strong>$object_id</strong>           If <info>null</info>, <strong>$object_id</strong> is taken as the root of the SNMP objects
                                     tree and all objects under that tree are returned as an array.
                                     
                                     If <strong>$object_id</strong> is specified, all the SNMP objects below that
                                     <strong>$object_id</strong> are returned.
  <info>int</info>           <strong>$timeout</strong>             The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>             The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of SNMP object values starting from the <strong>$object_id</strong> as root or <info>false</info>
               on error.

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


id: snmp_get_quick_print
type: function
doc:
<comment>Description:</comment>
  Fetches the current value of the NET-SNMP library's quick_print setting
    
  
  Returns the current value stored in the NET-SNMP Library for quick_print.   quick_print is off by
  default.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if quick_print is on, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>snmp_set_quick_print()</strong> for a full description
     of what quick_print does.


id: snmp_get_valueretrieval
type: function
doc:
<comment>Description:</comment>
  Return the method how the SNMP values will be returned

<comment>Return:</comment>
  <info>int</info>  OR-ed combitantion of constants ( <info>SNMP_VALUE_LIBRARY</info> or <info>SNMP_VALUE_PLAIN</info> ) with possible
       SNMP_VALUE_OBJECT set.

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


id: snmp_read_mib
type: function
doc:
<comment>Description:</comment>
  Reads and parses a MIB file into the active MIB tree
    
  
  This function is used to load additional, e.g. vendor specific, MIBs so that human readable OIDs
  like <return>VENDOR-MIB::foo.1</return> instead of error prone numeric OIDs can be used.
  
  The order in which the MIBs are loaded does matter as the underlying Net-SNMP library will print
  warnings if referenced objects cannot be resolved.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The filename of the MIB.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: snmp_set_enum_print
type: function
doc:
<comment>Description:</comment>
  Return all values that are enums with their enum value instead of the raw integer
    
  
  This function toggles if snmpwalk/snmpget etc. should automatically lookup enum values in the MIB
  and return them together with their human readable string.

<comment>Param:</comment>
  <info>bool</info>  <strong>$enable</strong>  As the value is interpreted as boolean by the Net-SNMP library, it can only be "0"
                 or "1".

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <info>true</info>.


id: snmp_set_oid_numeric_print
type: function
doc:
<comment>Description:</comment>
  Sinônimo de snmp_set_oid_output_format
  
  Esta função é um apelido para:  <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>
  Set the OID output format
    
  
  <strong>snmp_set_oid_output_format()</strong> sets the output format to be full or numeric.

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

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <info>true</info>.


id: snmp_set_quick_print
type: function
doc:
<comment>Description:</comment>
  Set the value of enable within the NET-SNMP library
    
  
  Sets the value of <strong>$enable</strong> within the NET-SNMP library.  When this is set (1), the SNMP library
  will return 'quick printed' values.  This means that just the value will be printed.  When <strong>$enable</strong>
  is not enabled (default) the NET-SNMP library prints extra information including the type of the
  value (i.e. IpAddress or OID).  Additionally,  if quick_print is not enabled, the library prints
  additional hex values  for all strings of three characters or less.
  
  By default the NET-SNMP library returns verbose values, quick_print is used to return only the
  value.
  
  Currently strings are still returned with extra quotes, this will be corrected in a later release.

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

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <info>true</info>.

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


id: snmp_set_valueretrieval
type: function
doc:
<comment>Description:</comment>
  Specify the method how the SNMP values will be returned

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

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <info>true</info>.

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


id: snmpget
type: function
doc:
<comment>Description:</comment>
  Fetch an SNMP object
  
  The <strong>snmpget()</strong> function is used to read the value of an SNMP object specified by the <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The SNMP agent.
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error.

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


id: snmpgetnext
type: function
doc:
<comment>Description:</comment>
  Fetch the SNMP object which follows the given object id
    
  
  The <strong>snmpgetnext()</strong> function is used to read the value of the SNMP object that follows the specified
  <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id which precedes the wanted one.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>mixed</info>  Returns SNMP object value on success or <info>false</info> on error. In case of an error, an E_WARNING
         message is shown.

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


id: snmprealwalk
type: function
doc:
<comment>Description:</comment>
  Return all objects including their respective object ID within the specified one
    
  
  The <strong>snmprealwalk()</strong> function is used to traverse over a number of SNMP objects starting from
  <strong>$object_id</strong> and return not only their values but also their object ids.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id which precedes the wanted one.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array of the SNMP object ids and their values on success or
               <info>false</info> on error. In case of an error, an E_WARNING message is shown.

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


id: snmpset
type: function
doc:
<comment>Description:</comment>
  Set the value of an SNMP object
  
  <strong>snmpset()</strong> is used to set the value of an SNMP object specified by the <strong>$object_id</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The hostname of the SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The write community.
  <info>array|string</info>  <strong>$object_id</strong>  The SNMP object id.
  <info>array|string</info>  <strong>$type</strong>       O MIB define o tipo de cada ID de objeto. Deve ser especificado como um
                            único caractere da lista abaixo.
                            
                            Se <info>OPAQUE_SPECIAL_TYPES</info> foi definida ao compilar a biblioteca SNMP, os
                            seguintes tipos também são válidos:
                            
                            A maioria destes tipos usará o tipo ASN.1 correspondente óbvio. 's',
                            'x', 'd' e 'b' são todas maneiras diferentes de especificar um valor
                            OCTET STRING e o tipo sem sinal 'u' também é usado para lidar com
                            valores Gauge32.
                            
                            Se os arquivos MIB forem carregados na árvore MIB com "snmp_read_mib" ou
                            ao especificar isso na configuração da libsnmp, '=' pode ser usado como
                            o parâmetro <strong>$type</strong> para todos os IDs de objeto, pois o tipo pode ser lido
                            automaticamente a partir do MIB.
                            
                            Note que existem duas maneiras de definir uma variável do tipo BITS
                            como, por exemplo, "SYNTAX    BITS {telnet(0), ftp(1), http(2), icmp(3),
                            snmp(4), ssh(5), https(6)}":
                            
                            Usando o tipo "b" e uma lista de números binários. Este método não é
                            recomendado, pois a consulta GET para o mesmo OID retornaria, por
                            exemplo, 0xF8.
                            
                            Usando o tipo "x" e um número hexadecimal, mas sem (!) o prefixo "0x"
                            comum.
                            
                            Consulte a seção de exemplos para obter mais detalhes.
  <info>array|string</info>  <strong>$value</strong>      The new value.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.
        
        If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet.
        Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or
        invalid OID is specified the warning probably reads "Could not add variable".

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


id: snmpwalk
type: function
doc:
<comment>Description:</comment>
  Fetch all the SNMP objects from an agent
  
  <strong>snmpwalk()</strong> function is used to read all the values from an SNMP agent specified by the <strong>$hostname</strong>.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The SNMP agent (server).
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  If <info>null</info>, <strong>$object_id</strong> is taken as the root of the SNMP objects tree and
                            all objects under that tree are returned as an array.
                            
                            If <strong>$object_id</strong> is specified, all the SNMP objects below that <strong>$object_id</strong>
                            are returned.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of SNMP object values starting from the <strong>$object_id</strong> as root or <info>false</info>
               on error.

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


id: snmpwalkoid
type: function
doc:
<comment>Description:</comment>
  Query for a tree of information about a network entity
    
  
  <strong>snmpwalkoid()</strong> function is used to read all object ids and their respective values from an SNMP
  agent specified by   <strong>$hostname</strong>.
  
  The existence of <strong>snmpwalkoid()</strong> and <strong>snmpwalk()</strong> has historical reasons.  Both functions are provided
  for backward compatibility. Use <strong>snmprealwalk()</strong> instead.

<comment>Param:</comment>
  <info>string</info>        <strong>$hostname</strong>   The SNMP agent.
  <info>string</info>        <strong>$community</strong>  The read community.
  <info>array|string</info>  <strong>$object_id</strong>  If <info>null</info>, <strong>$object_id</strong> is taken as the root of the SNMP objects tree and
                            all objects under that tree are returned as an array.
                            
                            If <strong>$object_id</strong> is specified, all the SNMP objects below that <strong>$object_id</strong>
                            are returned.
  <info>int</info>           <strong>$timeout</strong>    The number of microseconds until the first timeout.
  <info>int</info>           <strong>$retries</strong>    The number of times to retry if timeouts occur.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array with object ids and their respective object value
               starting from the <strong>$object_id</strong> as root or <info>false</info> on error.

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


id: socket_accept
type: function
doc:
<comment>Description:</comment>
  Aceita uma conexão em um socket
  
  Após o socket <strong>$socket</strong> ter sido criado usando <strong>socket_create()</strong>, passar um nome com <strong>socket_bind()</strong>, e
  dizer para listar conexões com <strong>socket_listen()</strong>, essa função irá aceitar conexões vindas neste
  socket. Uma vez que uma conexão com sucesso é feita, uma nova instância de <class>Socket</class> é retornada, que
  pode ser usada para comunicação. Se houver múltiplas conexões na fila do socket, a primeira irá
  ser usada. Se não há conexões pendentes, <strong>socket_accept()</strong> irá bloquear até que uma conexão esteja
  presente. Se <strong>$socket</strong> não for desbloqueado usando <strong>socket_set_blocking()</strong> ou <strong>socket_set_nonblock()</strong>,
  irá retornar <info>false</info>.
  
  A instância <class>Socket</class> retornada por <strong>socket_accept()</strong> não deve ser usada para aceitar novas conexões. A
  escuta original, <strong>$socket</strong>, de qualquer modo, permanecerá aberta e pode ser reutilizada.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Uma instância <class>Socket</class> criada com <strong>socket_create()</strong>.

<comment>Return:</comment>
  <info>Socket|false</info>  Retorna uma nova instância <class>Socket</class> em caso de sucesso, ou <info>false</info> em caso de erro. O
                código de erro real pode ser obtido chamando-se <strong>socket_last_error()</strong>. Este código de
                erro pode ser passado a <strong>socket_strerror()</strong> para obter uma explicação textual do erro.

<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>
  Create and bind to a socket from a given addrinfo
  
  Create a <class>Socket</class> instance, and bind it to the provided <class>AddressInfo</class>.  The return value of this
  function may be used with <strong>socket_listen()</strong>.

<comment>Param:</comment>
  <info>AddressInfo</info>  <strong>$address</strong>  <class>AddressInfo</class> instance created from <strong>socket_addrinfo_lookup()</strong>.

<comment>Return:</comment>
  <info>Socket|false</info>  Returns a <class>Socket</class> instance on success or <info>false</info> on failure.

<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>
  Create and connect to a socket from a given addrinfo
  
  Create a <class>Socket</class> instance, and connect it to the provided <class>AddressInfo</class> instance.  The return value
  of this function may be used with the rest of the socket functions.

<comment>Param:</comment>
  <info>AddressInfo</info>  <strong>$address</strong>  <class>AddressInfo</class> instance created from <strong>socket_addrinfo_lookup()</strong>

<comment>Return:</comment>
  <info>Socket|false</info>  Returns a <class>Socket</class> instance on success or <info>false</info> on failure.

<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>
  Get information about addrinfo
  
  <strong>socket_addrinfo_explain()</strong> exposed the underlying <return>addrinfo</return> structure.

<comment>Param:</comment>
  <info>AddressInfo</info>  <strong>$address</strong>  <class>AddressInfo</class> instance created from <strong>socket_addrinfo_lookup()</strong>

<comment>Return:</comment>
  <info>array</info>  Returns an array containing the fields in the <return>addrinfo</return> structure.

<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>
  Get array with contents of getaddrinfo about the given hostname
  
  Lookup different ways we can connect to <strong>$host</strong>.  The returned array contains a set of <class>AddressInfo</class>
  instances that we can bind to using <strong>socket_addrinfo_bind()</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$host</strong>     Hostname to search.
  <info>string|null</info>  <strong>$service</strong>  The service to connect to. If service is a numeric string, it designates
                         the port. Otherwise it designates a network service name, which is mapped
                         to a port by the operating system.
  <info>array</info>        <strong>$hints</strong>    Hints provide criteria for selecting addresses returned.  You may specify
                         the hints as defined by getaddrinfo.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of <class>AddressInfo</class> instances that can be used with the other
               socket_addrinfo functions. On failure, <info>false</info> is returned.

<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>
  Determina se o socket está na marca fora-de-banda
  
  Determina se <strong>$socket</strong> está na marca fora-de-banda.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  Uma instância de <class>Socket</class> criada com <strong>socket_create()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<comment>See Also:</comment>
   * <strong>socket_connect()</strong>
   * <strong>socket_create()</strong>


id: socket_bind
type: function
doc:
<comment>Description:</comment>
  Binds a name to a socket
  
  Binds the name given in <strong>$address</strong> to the socket described by <strong>$socket</strong>. This has to be done before a
  connection is established using <strong>socket_connect()</strong> or <strong>socket_listen()</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   A <class>Socket</class> instance created with <strong>socket_create()</strong>.
  <info>string</info>  <strong>$address</strong>  If the socket is of the <info>AF_INET</info> family, the <strong>$address</strong> is an IP in dotted-quad
                    notation (e.g. <return>127.0.0.1</return>).
                    
                    If the socket is of the <info>AF_UNIX</info> family, the <strong>$address</strong> is the path of a
                    Unix-domain socket (e.g. /tmp/my.sock).
  <info>int</info>     <strong>$port</strong>     The <strong>$port</strong> parameter is only used when binding an <info>AF_INET</info> socket, and designates
                    the port on which to listen for connections.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.
        
        The error code can be retrieved with <strong>socket_last_error()</strong>. This code may be passed to
        <strong>socket_strerror()</strong> to get a textual explanation of the error.

<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>
  Limpa o erro no socket ou o último código de erro
  
  Essa função limpa o código de erro dado no socket ou o último erro de socket global se nenhum for
  especificado.
  
  Essa função permite explicitamente resetar qualquer valor do código de erro do socket ou da
  extensão global do último código de erro. Isso deve ser útil para detectar dentro de uma parte da
  aplicação se um erro ocorreu ou não.

<comment>Param:</comment>
  <info>Socket|null</info>  <strong>$socket</strong>  Uma instância de <class>Socket</class> criada com <strong>socket_create()</strong>.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.

<comment>See Also:</comment>
   * <strong>socket_last_error()</strong>
   * <strong>socket_strerror()</strong>


id: socket_close
type: function
doc:
<comment>Description:</comment>
  Closes a Socket instance
  
  <strong>socket_close()</strong> closes the <class>Socket</class> instance given by <strong>$socket</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_accept()</strong>.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.

<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>
  Calculate message buffer size
  
  Calculates the size of the buffer that should be allocated for receiving the ancillary data.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<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>
  Initiates a connection on a socket
  
  Initiate a connection to <strong>$address</strong> using the <class>Socket</class> instance <strong>$socket</strong>, which must be <class>Socket</class> instance
  created with <strong>socket_create()</strong>.

<comment>Param:</comment>
  <info>Socket</info>    <strong>$socket</strong>   A <class>Socket</class> instance created with <strong>socket_create()</strong>.
  <info>string</info>    <strong>$address</strong>  The <strong>$address</strong> parameter is either an IPv4 address in dotted-quad notation (e.g.
                      <return>127.0.0.1</return>) if  <strong>$socket</strong> is <info>AF_INET</info>, a valid  IPv6 address (e.g. <return>::1</return>) if IPv6
                      support is enabled and  <strong>$socket</strong> is <info>AF_INET6</info> or the pathname of a Unix domain
                      socket, if the socket family is <info>AF_UNIX</info>.
  <info>int|null</info>  <strong>$port</strong>     The <strong>$port</strong> parameter is only used and is mandatory when connecting to an
                      <info>AF_INET</info> or an  <info>AF_INET6</info> socket, and designates the port on the remote host to
                      which a connection should be made.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha. The error code can be retrieved
        with <strong>socket_last_error()</strong>. This code may be passed to <strong>socket_strerror()</strong> to get a textual
        explanation of the error.
        
        If the socket is non-blocking then this function returns <info>false</info> with an error <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>
  Create a socket (endpoint for communication)
  
  Creates and returns a <class>Socket</class> instance, also referred to as an endpoint of communication. A typical
  network connection is made up of 2 sockets, one performing the role of the client, and another
  performing the role of the server.

<comment>Param:</comment>
  <info>int</info>  <strong>$domain</strong>    The <strong>$domain</strong> parameter specifies the protocol family to be used by the socket.
  <info>int</info>  <strong>$type</strong>      The <strong>$type</strong> parameter selects the type of communication to be used by the socket.
  <info>int</info>  <strong>$protocol</strong>  The <strong>$protocol</strong> parameter sets the specific protocol within the specified <strong>$domain</strong> to
                  be used when communicating on the returned socket. The proper value can be
                  retrieved by name by using <strong>getprotobyname()</strong>. If the desired protocol is TCP, or
                  UDP the corresponding constants <info>SOL_TCP</info>, and <info>SOL_UDP</info> can also be used.

<comment>Return:</comment>
  <info>Socket|false</info>  <strong>socket_create()</strong> returns a <class>Socket</class> instance on success, or <info>false</info> on error. The actual
                error code can be retrieved by calling <strong>socket_last_error()</strong>. This error code may be
                passed to <strong>socket_strerror()</strong> to get a textual explanation of the error.

<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>
  Opens a socket on port to accept connections 
  
  <strong>socket_create_listen()</strong> creates a new <class>Socket</class> instance of type <info>AF_INET</info> listening on all local
  interfaces on the given port waiting for new connections.
  
  This function is meant to ease the task of creating a new socket which only listens to accept new
  connections.

<comment>Param:</comment>
  <info>int</info>  <strong>$port</strong>     The port on which to listen on all interfaces.
  <info>int</info>  <strong>$backlog</strong>  The <strong>$backlog</strong> parameter defines the maximum length the queue of pending connections
                 may grow to. <info>SOMAXCONN</info> may be passed as <strong>$backlog</strong> parameter, see <strong>socket_listen()</strong> for
                 more information.

<comment>Return:</comment>
  <info>Socket|false</info>  <strong>socket_create_listen()</strong> returns a new <class>Socket</class> instance on success or <info>false</info> on error.
                The error code can be retrieved with <strong>socket_last_error()</strong>. This code may be passed to
                <strong>socket_strerror()</strong> to get a textual explanation of the error.

<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>
  Creates a pair of indistinguishable sockets and stores them in an array
  
  <strong>socket_create_pair()</strong> creates two connected and indistinguishable sockets, and stores them in
  <strong>$pair</strong>. This function is commonly used in IPC (InterProcess Communication).

<comment>Param:</comment>
  <info>int</info>    <strong>$domain</strong>    The <strong>$domain</strong> parameter specifies the protocol family to be used by the socket.
                    See <strong>socket_create()</strong> for the full list.
  <info>int</info>    <strong>$type</strong>      The <strong>$type</strong> parameter selects the type of communication to be used by the socket.
                    See <strong>socket_create()</strong> for the  full list.
  <info>int</info>    <strong>$protocol</strong>  The <strong>$protocol</strong> parameter sets the specific protocol within the specified <strong>$domain</strong>
                    to be used when communicating on the returned socket. The proper value can be
                    retrieved by name by using <strong>getprotobyname()</strong>. If the desired protocol is TCP, or
                    UDP the corresponding constants <info>SOL_TCP</info>, and <info>SOL_UDP</info> can also be used.
                    
                    See <strong>socket_create()</strong> for the full list of supported  protocols.
  <info>array</info>  <strong>$pair</strong>      Reference to an array in which the two <class>Socket</class> instances will be inserted.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Export a socket into a stream that encapsulates a socket
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  

<comment>Return:</comment>
  <info>resource|false</info>  Return resource ou <info>false</info> em caso de falha.


id: socket_get_option
type: function
doc:
<comment>Description:</comment>
  Gets socket options for the socket 
  
  The <strong>socket_get_option()</strong> function retrieves the value for the option specified by the <strong>$option</strong>
  parameter for the specified <strong>$socket</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_accept()</strong>.
  <info>int</info>     <strong>$level</strong>   The <strong>$level</strong> parameter specifies the protocol level at which the option resides.
                   For example, to retrieve options at the socket level, a <strong>$level</strong> parameter of
                   <info>SOL_SOCKET</info> would be used. Other levels, such as <info>TCP</info>, can be used by specifying
                   the protocol number of that level. Protocol numbers can be found by using the
                   <strong>getprotobyname()</strong> function.
  <info>int</info>     <strong>$option</strong>  Reports whether the <strong>$socket</strong> lingers on  <strong>socket_close()</strong> if data is present. By
                   default,  when the socket is closed, it attempts to send all unsent data. In the
                   case of a connection-oriented socket,  <strong>socket_close()</strong> will wait for its peer to
                   acknowledge the data.
                   
                   If l_onoff is non-zero and  l_linger is zero, all the  unsent data will be
                   discarded and RST (reset) is sent to the  peer in the case of a
                   connection-oriented socket.
                   
                   On the other hand, if l_onoff is  non-zero and l_linger is non-zero,
                   <strong>socket_close()</strong> will block until all the data  is sent or the time specified in
                   l_linger elapses. If the socket is non-blocking,  <strong>socket_close()</strong> will fail and
                   return an error.

<comment>Return:</comment>
  <info>array|int|false</info>  Returns the value of the given option,  ou <info>false</info> em caso de falha.

<comment>See Also:</comment>
   * <strong>socket_create_listen()</strong>
   * <strong>socket_set_option()</strong>


id: socket_get_status
type: function
doc:
<comment>Description:</comment>
  Sinônimo de stream_get_meta_data
  
  Esta função é um apelido para:  <strong>stream_get_meta_data()</strong>.


id: socket_getopt
type: function
doc:
<comment>Description:</comment>
  Sinônimo de socket_get_option
  
  Esta função é um apelido para:  <strong>socket_get_option()</strong>.


id: socket_getpeername
type: function
doc:
<comment>Description:</comment>
  Queries the remote side of the given socket which may either result in host/port or in a Unix
  filesystem path, dependent on its type
  
  Queries the remote side of the given socket which may either result in host/port or in a Unix
  filesystem path, dependent on its type.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_accept()</strong>.
  <info>string</info>  <strong>$address</strong>  If the given socket is of type <info>AF_INET</info> or <info>AF_INET6</info>, <strong>socket_getpeername()</strong> will
                    return the peers (remote) IP address in appropriate notation (e.g. <return>127.0.0.1</return> or
                    <return>fe80::1</return>) in the <strong>$address</strong> parameter and, if the optional <strong>$port</strong> parameter is
                    present, also the associated port.
                    
                    If the given socket is of type <info>AF_UNIX</info>, <strong>socket_getpeername()</strong> will return the
                    Unix filesystem path (e.g. <return>/var/run/daemon.sock</return>) in the <strong>$address</strong> parameter.
  <info>int</info>     <strong>$port</strong>     If given, this will hold the port associated to <strong>$address</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha. <strong>socket_getpeername()</strong> may also
        return <info>false</info> if the socket type is not any of <info>AF_INET</info>, <info>AF_INET6</info>, or <info>AF_UNIX</info>, in which case
        the last socket error code is not updated.

<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>
  Queries the local side of the given socket which may either result in host/port or in a Unix
  filesystem path, dependent on its type
  
  <strong>socket_getsockname()</strong> should not be used with <info>AF_UNIX</info> sockets created with <strong>socket_connect()</strong>. Only
  sockets created with <strong>socket_accept()</strong> or a primary server socket following a call to <strong>socket_bind()</strong>
  will return meaningful values.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_accept()</strong>.
  <info>string</info>  <strong>$address</strong>  If the given socket is of type <info>AF_INET</info> or <info>AF_INET6</info>, <strong>socket_getsockname()</strong> will
                    return the local IP address in appropriate notation (e.g. <return>127.0.0.1</return> or <return>fe80::1</return>)
                    in the <strong>$address</strong> parameter and, if the optional <strong>$port</strong> parameter is present, also
                    the associated port.
                    
                    If the given socket is of type <info>AF_UNIX</info>, <strong>socket_getsockname()</strong> will return the
                    Unix filesystem path (e.g. <return>/var/run/daemon.sock</return>) in the <strong>$address</strong> parameter.
  <info>int</info>     <strong>$port</strong>     If provided, this will hold the associated port.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha. <strong>socket_getsockname()</strong> may also
        return <info>false</info> if the socket type is not any of <info>AF_INET</info>, <info>AF_INET6</info>, or <info>AF_UNIX</info>, in which case
        the last socket error code is not updated.

<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>
  Import a stream
  
  Imports a stream that encapsulates a socket into a socket extension resource.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The stream resource to import.

<comment>Return:</comment>
  <info>Socket|false</info>  Returns <info>false</info> on failure.

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


id: socket_last_error
type: function
doc:
<comment>Description:</comment>
  Returns the last error on the socket 
  
  If a <class>Socket</class> instance is passed to this function, the last error which occurred on this particular
  socket is returned. If <strong>$socket</strong> is <info>null</info>, the error code of the last failed socket function is
  returned. The latter is particularly helpful for functions like <strong>socket_create()</strong> which don't return
  a socket on failure and <strong>socket_select()</strong> which can fail for reasons not directly tied to a
  particular socket.  The error code is suitable to be fed to <strong>socket_strerror()</strong> which returns a
  string describing the given error code.
  
  If no error had occurred, or the error had been cleared with <strong>socket_clear_error()</strong>, the function
  returns <return>0</return>.

<comment>Param:</comment>
  <info>Socket|null</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong>.

<comment>Return:</comment>
  <info>int</info>  This function returns a socket error code.


id: socket_listen
type: function
doc:
<comment>Description:</comment>
  Listens for a connection on a socket
  
  After the socket <strong>$socket</strong> has been created using <strong>socket_create()</strong> and bound to a name with
  <strong>socket_bind()</strong>, it may be told to listen for incoming connections on <strong>$socket</strong>.
  
  <strong>socket_listen()</strong> is applicable only to sockets of type <info>SOCK_STREAM</info> or <info>SOCK_SEQPACKET</info>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_addrinfo_bind()</strong>
  <info>int</info>     <strong>$backlog</strong>  A maximum of <strong>$backlog</strong> incoming connections will be queued for processing. If a
                    connection request arrives with the queue full the client may receive an error
                    with an indication of <return>ECONNREFUSED</return>, or, if the underlying protocol supports
                    retransmission, the request may be ignored so that retries may succeed.
                    
                    The maximum number passed to the <strong>$backlog</strong> parameter highly depends on the
                    underlying platform. On Linux, it is silently truncated to <info>SOMAXCONN</info>. On win32,
                    if passed <info>SOMAXCONN</info>, the underlying service provider responsible for the socket
                    will set the backlog to a maximum reasonable value. There is no standard
                    provision to find out the actual backlog value on this platform.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha. The error code can be retrieved
        with <strong>socket_last_error()</strong>. This code may be passed to <strong>socket_strerror()</strong> to get a textual
        explanation of the error.

<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>
  Reads a maximum of length bytes from a socket
  
  The function <strong>socket_read()</strong> reads from the <class>Socket</class> instance <strong>$socket</strong> created by the <strong>socket_create()</strong>
  or <strong>socket_accept()</strong> functions.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_accept()</strong>.
  <info>int</info>     <strong>$length</strong>  The maximum number of bytes read is specified by the <strong>$length</strong> parameter. Otherwise
                   you can use <info>\r</info>, <info>\n</info>, or <info>\0</info> to end reading (depending on the <strong>$mode</strong> parameter, see
                   below).
  <info>int</info>     <strong>$mode</strong>    Optional <strong>$mode</strong> parameter is a named constant: <info>PHP_BINARY_READ</info> (Default) - use the
                   system <return>recv()</return> function. Safe for reading binary data. <info>PHP_NORMAL_READ</info> - reading
                   stops at <return>\n</return> or <return>\r</return>.
                   
                   <info>PHP_BINARY_READ</info> (Default) - use the system <return>recv()</return> function. Safe for reading
                   binary data.
                   
                   <info>PHP_NORMAL_READ</info> - reading stops at <return>\n</return> or <return>\r</return>.

<comment>Return:</comment>
  <info>string|false</info>  <strong>socket_read()</strong> returns the data as a string on success, or <info>false</info> on error (including
                if the remote host has closed the connection). The error code can be retrieved with
                <strong>socket_last_error()</strong>. This code may be passed to <strong>socket_strerror()</strong> to get a textual
                representation of the error.
                
                <strong>socket_read()</strong> returns a zero length string ("") when there is no more data to read.

<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>
  Recebe dados de um socket conectado
  
  A função <strong>socket_recv()</strong> recebe o número de bytes definidos em <strong>$length</strong>, dos dados definidos em <strong>$data</strong>
  a partir do <strong>$socket</strong>. <strong>socket_recv()</strong> pode ser usada para receber dados de sockets conectados.
  Adicionalmente, uma ou mais opções podem ser especificadas para modificar o comportamento da
  função.
  
  O parâmetro <strong>$data</strong> é passado por referência, por isso deve ser especificado como uma variável na
  lista de argumentos. Dados lidos do <strong>$socket</strong> por <strong>socket_recv()</strong> serão retornados em <strong>$data</strong>.

<comment>Param:</comment>
  <info>Socket</info>       <strong>$socket</strong>  O <strong>$socket</strong> deve ser uma instância de <class>Socket</class> previamente criada por
                        socket_create().
  <info>string|null</info>  <strong>$data</strong>    Os dados recebidos serão guardados na variável especificada em <strong>$data</strong>. Se um
                        erro ocorrer, se a conexão for redefinida, ou se não houver dados
                        disponíveis, <strong>$data</strong> será igual a <info>null</info>.
  <info>int</info>          <strong>$length</strong>  <strong>$length</strong> é o número máximo de bytes que serão recebidos do servidor remoto.
  <info>int</info>          <strong>$flags</strong>   O valor de <strong>$flags</strong> pode ser qualquer combinação das opções a seguir, unidas
                        pelo operador binário OR (<return>|</return>).

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_recv()</strong> retorna o número de bytes recebidos, ou <info>false</info> se houver um erro. O código
             de erro real pode ser obtido chamando-se <strong>socket_last_error()</strong>. Este código de erro pode
             se passado a <strong>socket_strerror()</strong> para obter uma explicação textual do erro.


id: socket_recvfrom
type: function
doc:
<comment>Description:</comment>
  Receives data from a socket whether or not it is connection-oriented
  
  The <strong>socket_recvfrom()</strong> function receives <strong>$length</strong> bytes of data in <strong>$data</strong> from <strong>$address</strong> on port <strong>$port</strong>
  (if the socket is not of type <info>AF_UNIX</info>) using <strong>$socket</strong>. <strong>socket_recvfrom()</strong> can be used to gather data
  from both connected and unconnected sockets. Additionally, one or more flags can be specified to
  modify the behaviour of the function.
  
  The <strong>$address</strong> and <strong>$port</strong> must be passed by reference. If the socket is not connection-oriented,
  <strong>$address</strong> will be set to the internet protocol address of the remote host or the path to the UNIX
  socket. If the socket is connection-oriented, <strong>$address</strong> is <info>null</info>. Additionally, the <strong>$port</strong> will
  contain the port of the remote host in the case of an unconnected <info>AF_INET</info> or <info>AF_INET6</info> socket.
  
  Esta função é
  compatível com dados binários.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>   The <strong>$socket</strong> must be a <class>Socket</class> instance previously created by socket_create().
  <info>string</info>  <strong>$data</strong>     The data received will be fetched to the variable specified with <strong>$data</strong>.
  <info>int</info>     <strong>$length</strong>   Up to <strong>$length</strong> bytes will be fetched from remote host.
  <info>int</info>     <strong>$flags</strong>    The value of <strong>$flags</strong> can be any combination of  the following flags, joined with
                    the binary OR (<return>|</return>) operator.
  <info>string</info>  <strong>$address</strong>  If the socket is of the type <info>AF_UNIX</info> type, <strong>$address</strong> is the path to the file.
                    Else, for unconnected sockets, <strong>$address</strong> is the IP address of, the remote host,
                    or <info>null</info> if the socket is connection-oriented.
  <info>int</info>     <strong>$port</strong>     This argument only applies to <info>AF_INET</info> and <info>AF_INET6</info> sockets, and specifies the
                    remote port from which the data is received. If the socket is
                    connection-oriented, <strong>$port</strong> will be <info>null</info>.

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_recvfrom()</strong> returns the number of bytes received, or <info>false</info> if there was an error.
             The actual error code can be retrieved by  calling <strong>socket_last_error()</strong>. This error code
             may be passed to <strong>socket_strerror()</strong> to get a textual explanation of the error.

<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>
  Read a message
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<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>
  Runs the select() system call on the given arrays of sockets with a specified timeout
  
  <strong>socket_select()</strong> accepts arrays of sockets and waits for them to change status. Those coming with
  BSD sockets background will recognize that those socket arrays are in fact the so-called file
  descriptor sets. Three independent arrays of sockets are watched.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$read</strong>          The sockets listed in the <strong>$read</strong> array will be watched to see if
                             characters become available for reading (more precisely, to see if a
                             read will not block - in particular, a socket is also ready on
                             end-of-file, in which case a <strong>socket_read()</strong> will return a zero length
                             string).
  <info>array|null</info>  <strong>$write</strong>         The sockets listed in the <strong>$write</strong> array will be watched to see if a
                             write will not block.
  <info>array|null</info>  <strong>$except</strong>        The sockets listed in the <strong>$except</strong> array will be watched for exceptions.
  <info>int|null</info>    <strong>$seconds</strong>       The <strong>$seconds</strong> and <strong>$microseconds</strong> together form the <return>timeout</return> parameter. The
                             <return>timeout</return> is an upper bound on the amount of time elapsed before
                             <strong>socket_select()</strong> return. <strong>$seconds</strong> may be zero , causing <strong>socket_select()</strong>
                             to return immediately. This is useful for polling. If <strong>$seconds</strong> is <info>null</info>
                             (no timeout), <strong>socket_select()</strong> can block indefinitely.
  <info>int</info>         <strong>$microseconds</strong>  

<comment>Return:</comment>
  <info>int|false</info>  On success <strong>socket_select()</strong> returns the number of sockets contained in the modified
             arrays, which may be zero if the timeout expires before anything interesting happens.On
             error <info>false</info> is returned. The error code can be retrieved with <strong>socket_last_error()</strong>.
             
             Be sure to use the <return>===</return> operator when checking for an error. Since the <strong>socket_select()</strong>
             may return 0 the comparison with <return>==</return> would evaluate to <info>true</info>: Understanding
             <strong>socket_select()</strong>'s result
             ]]>

<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>
  Sends data to a connected socket
  
  The function <strong>socket_send()</strong> sends <strong>$length</strong> bytes to the socket <strong>$socket</strong> from <strong>$data</strong>.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_accept()</strong>.
  <info>string</info>  <strong>$data</strong>    A buffer containing the data that will be sent to the remote host.
  <info>int</info>     <strong>$length</strong>  The number of bytes that will be sent to the remote host from  <strong>$data</strong>.
  <info>int</info>     <strong>$flags</strong>   The value of <strong>$flags</strong> can be any combination of  the following flags, joined with
                   the binary OR (<return>|</return>) operator. Possible values for <strong>$flags</strong><info>MSG_OOB</info> Send OOB
                   (out-of-band) data. <info>MSG_EOR</info> Indicate a record mark. The sent data completes the
                   record. <info>MSG_EOF</info> Close the sender side of the socket and include an appropriate
                   notification of this at the end of the sent data. The sent data completes the
                   transaction. <info>MSG_DONTROUTE</info> Bypass routing, use direct interface.

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_send()</strong> returns the number of bytes sent, or <info>false</info> on error.

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


id: socket_sendmsg
type: function
doc:
<comment>Description:</comment>
  Send a message
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<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>  Returns the number of bytes sent,  ou <info>false</info> em caso de falha.

<comment>See Also:</comment>
   * <strong>socket_recvmsg()</strong>
   * <strong>socket_cmsg_space()</strong>


id: socket_sendto
type: function
doc:
<comment>Description:</comment>
  Sends a message to a socket, whether it is connected or not 
  
  The function <strong>socket_sendto()</strong> sends <strong>$length</strong> bytes from <strong>$data</strong> through the socket <strong>$socket</strong> to the
  <strong>$port</strong> at the address <strong>$address</strong>.

<comment>Param:</comment>
  <info>Socket</info>    <strong>$socket</strong>   A <class>Socket</class> instance created using <strong>socket_create()</strong>.
  <info>string</info>    <strong>$data</strong>     The sent data will be taken from buffer <strong>$data</strong>.
  <info>int</info>       <strong>$length</strong>   <strong>$length</strong> bytes from <strong>$data</strong> will be sent.
  <info>int</info>       <strong>$flags</strong>    The value of <strong>$flags</strong> can be any combination of  the following flags, joined
                      with the binary OR (<return>|</return>) operator. Possible values for <strong>$flags</strong><info>MSG_OOB</info> Send OOB
                      (out-of-band) data. <info>MSG_EOR</info> Indicate a record mark. The sent data completes
                      the record. <info>MSG_EOF</info> Close the sender side of the socket and include an
                      appropriate notification of this at the end of the sent data. The sent data
                      completes the transaction. <info>MSG_DONTROUTE</info> Bypass routing, use direct interface.
  <info>string</info>    <strong>$address</strong>  IP address of the remote host.
  <info>int|null</info>  <strong>$port</strong>     <strong>$port</strong> is the remote port number at which the data will be sent.

<comment>Return:</comment>
  <info>int|false</info>  <strong>socket_sendto()</strong> returns the number of bytes sent to the remote host, or <info>false</info> if an
             error occurred.

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


id: socket_set_block
type: function
doc:
<comment>Description:</comment>
  Sets blocking mode on a socket
  
  The <strong>socket_set_block()</strong> function removes the  <info>O_NONBLOCK</info> flag on the socket specified by the
  <strong>$socket</strong> parameter.
  
  When an operation (e.g. receive, send, connect, accept, ...) is performed on  a blocking socket,
  the script will pause its execution until it receives a signal or it can perform the operation.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_accept()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<comment>See Also:</comment>
   * <strong>socket_set_nonblock()</strong>
   * <strong>socket_set_option()</strong>


id: socket_set_blocking
type: function
doc:
<comment>Description:</comment>
  Sinônimo de stream_set_blocking
  
  Esta função é um apelido para:   <strong>stream_set_blocking()</strong>.


id: socket_set_nonblock
type: function
doc:
<comment>Description:</comment>
  Sets nonblocking mode for file descriptor fd 
  
  The <strong>socket_set_nonblock()</strong> function sets the  <info>O_NONBLOCK</info> flag on the socket specified by the
  <strong>$socket</strong> parameter.
  
  When an operation (e.g. receive, send, connect, accept, ...) is performed on  a non-blocking
  socket, the script will not pause its execution until it receives a  signal or it can perform the
  operation. Rather, if the operation would result in a block, the called function will fail.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_accept()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Sets socket options for the socket
  
  The <strong>socket_set_option()</strong> function sets the option specified by the <strong>$option</strong> parameter, at the
  specified protocol <strong>$level</strong>, to the value pointed to by the <strong>$value</strong> parameter for the  <strong>$socket</strong>.

<comment>Param:</comment>
  <info>Socket</info>            <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong> or <strong>socket_accept()</strong>.
  <info>int</info>               <strong>$level</strong>   The <strong>$level</strong> parameter specifies the protocol level at which the option
                             resides. For example, to set options at the socket level, a <strong>$level</strong>
                             parameter of <info>SOL_SOCKET</info> would be used. Other levels, such as TCP, can
                             be used by specifying the protocol number of that level.  Protocol
                             numbers can be found by using the  <strong>getprotobyname()</strong> function.
  <info>int</info>               <strong>$option</strong>  The available socket options are the same as those for the
                             <strong>socket_get_option()</strong> function.
  <info>array|string|int</info>  <strong>$value</strong>   The option value.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

<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>
  Sinônimo de stream_set_timeout
  
  Esta função é um apelido para:  <strong>stream_set_timeout()</strong>.


id: socket_setopt
type: function
doc:
<comment>Description:</comment>
  Sinônimo de socket_set_option
  
  Esta função é um apelido para:  <strong>socket_set_option()</strong>.


id: socket_shutdown
type: function
doc:
<comment>Description:</comment>
  Shuts down a socket for receiving, sending, or both
  
  The <strong>socket_shutdown()</strong> function allows you to stop incoming, outgoing or all data (the default)
  from being sent through the <strong>$socket</strong>
  
  The associated buffer, or buffers, may or may not be emptied.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>  A <class>Socket</class> instance created with <strong>socket_create()</strong>.
  <info>int</info>     <strong>$mode</strong>    The value of <strong>$mode</strong> can be one of the following: possible values for <strong>$mode</strong><return>0</return>
                   Shutdown socket reading <return>1</return> Shutdown socket writing <return>2</return> Shutdown socket reading and
                   writing

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: socket_strerror
type: function
doc:
<comment>Description:</comment>
  Return a string describing a socket error
  
  <strong>socket_strerror()</strong> takes as its <strong>$error_code</strong> parameter a socket error code as returned by
  <strong>socket_last_error()</strong> and returns the corresponding explanatory text.
  
  Although the error messages generated by the socket extension are in  English, the system messages
  retrieved with this function will appear depending on the current locale (<info>LC_MESSAGES</info>).

<comment>Param:</comment>
  <info>int</info>  <strong>$error_code</strong>  A valid socket error number, likely produced by  <strong>socket_last_error()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns the error message associated with the <strong>$error_code</strong> parameter.

<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>
  Write to a socket
  
  The function <strong>socket_write()</strong> writes to the <strong>$socket</strong> from the given <strong>$data</strong>.

<comment>Param:</comment>
  <info>Socket</info>    <strong>$socket</strong>  
  <info>string</info>    <strong>$data</strong>    The buffer to be written.
  <info>int|null</info>  <strong>$length</strong>  The optional parameter <strong>$length</strong> can specify an alternate length of bytes written
                     to the socket. If this length is greater than the buffer length, it is silently
                     truncated to the length of the buffer.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of bytes successfully written to the socket ou <info>false</info> em caso de
             falha. The error code can be retrieved with <strong>socket_last_error()</strong>. This code may be
             passed to <strong>socket_strerror()</strong> to get a textual explanation of the error.
             
             It is perfectly valid for <strong>socket_write()</strong> to return zero which means no bytes have been
             written. Be sure to use the <return>===</return> operator to check for <info>false</info> in case of an error.

<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>
  Exports the WSAPROTOCOL_INFO Structure
  
  Exports the <return>WSAPROTOCOL_INFO</return> structure into shared memory and returns an identifier to be used
  with <strong>socket_wsaprotocol_info_import()</strong>. The exported ID is only valid for the given <strong>$process_id</strong>.
  
  This function is available only on Windows.

<comment>Param:</comment>
  <info>Socket</info>  <strong>$socket</strong>      A <class>Socket</class> instance.
  <info>int</info>     <strong>$process_id</strong>  The ID of the process which will import the socket.

<comment>Return:</comment>
  <info>string|false</info>  Returns an identifier to be used for the import,  ou <info>false</info> em caso de falha

<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>
  Imports a Socket from another Process
  
  Imports a socket which has formerly been exported from another process.
  
  This function is available only on Windows.

<comment>Param:</comment>
  <info>string</info>  <strong>$info_id</strong>  The ID which has been returned by a former call to
                    <strong>socket_wsaprotocol_info_export()</strong>.

<comment>Return:</comment>
  <info>Socket|false</info>  Returns a <class>Socket</class> instance on success,  ou <info>false</info> em caso de falha

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


id: socket_wsaprotocol_info_release
type: function
doc:
<comment>Description:</comment>
  Releases an exported WSAPROTOCOL_INFO Structure
  
  Releases the shared memory corresponding to the given <strong>$info_id</strong>.
  
  This function is available only on Windows.

<comment>Param:</comment>
  <info>string</info>  <strong>$info_id</strong>  The ID which has been returned by a former call to
                    <strong>socket_wsaprotocol_info_export()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.

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


id: sodium_add
type: function
doc:
<comment>Description:</comment>
  Add large numbers
  
  This adds the parameter <strong>$string2</strong> to <strong>$string1</strong>, overwriting the value stored in <strong>$string1</strong>. This
  function assumes both parameters are binary strings that represent unsigned integers in
  little-endian byte order.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  String representing an arbitrary-length unsigned integer in little-endian byte
                    order. This parameter is passed by reference and will hold the sum of the two
                    parameters.
  <info>string</info>  <strong>$string2</strong>  String representing an arbitrary-length unsigned integer in little-endian byte
                    order.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.


id: sodium_base642bin
type: function
doc:
<comment>Description:</comment>
  Decodes a base64-encoded string into raw binary.
  
  Converts a base64 encoded string into raw binary. Unlike <strong>base64_decode()</strong>, <strong>sodium_base642bin()</strong> is
  constant-time (a property that is important for any code that touches cryptographic inputs, such
  as plaintexts or keys) and supports multiple character sets.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  <info>string</info>; Encoded string.
  <info>int</info>     <strong>$id</strong>      <info>SODIUM_BASE64_VARIANT_ORIGINAL</info> for standard (<return>A-Za-z0-9/\+</return>) Base64 encoding.
                   <info>SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING</info> for standard (<return>A-Za-z0-9/\+</return>) Base64
                   encoding, without <return>=</return> padding characters. <info>SODIUM_BASE64_VARIANT_URLSAFE</info> for
                   URL-safe (<return>A-Za-z0-9\-_</return>) Base64 encoding. <info>SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING</info>
                   for URL-safe (<return>A-Za-z0-9\-_</return>) Base64 encoding, without <return>=</return> padding characters.
  <info>string</info>  <strong>$ignore</strong>  Characters to ignore when decoding (e.g. whitespace characters).

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


id: sodium_bin2base64
type: function
doc:
<comment>Description:</comment>
  Encodes a raw binary string with base64.
  
  Converts a raw binary string into a base64-encoded string. Unlike <strong>base64_encode()</strong>,
  <strong>sodium_bin2base64()</strong> is constant-time (a property that is important for any code that touches
  cryptographic inputs, such as plaintexts or keys) and supports multiple character sets.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Raw binary string.
  <info>int</info>     <strong>$id</strong>      <info>SODIUM_BASE64_VARIANT_ORIGINAL</info> for standard (<return>A-Za-z0-9/\+</return>) Base64 encoding.
                   <info>SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING</info> for standard (<return>A-Za-z0-9/\+</return>) Base64
                   encoding, without <return>=</return> padding characters. <info>SODIUM_BASE64_VARIANT_URLSAFE</info> for
                   URL-safe (<return>A-Za-z0-9\-_</return>) Base64 encoding. <info>SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING</info>
                   for URL-safe (<return>A-Za-z0-9\-_</return>) Base64 encoding, without <return>=</return> padding characters.

<comment>Return:</comment>
  <info>string</info>  Base64-encoded string.


id: sodium_bin2hex
type: function
doc:
<comment>Description:</comment>
  Encode to hexadecimal
  
  Converts a raw binary string into a hex-encoded string. Unlike the standard hex-encoding function,
  <strong>sodium_bin2hex()</strong> is constant-time (a property that is important for any code that touches
  cryptographic inputs, such as plaintexts or keys).

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Raw binary string.

<comment>Return:</comment>
  <info>string</info>  Hex encoded string.


id: sodium_compare
type: function
doc:
<comment>Description:</comment>
  Compare large numbers
  
  Compare two strings as if they were arbitrary-length, unsigned little-endian integers, without
  side-channel leakage.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  Left operand
  <info>string</info>  <strong>$string2</strong>  Right operand

<comment>Return:</comment>
  <info>int</info>  Returns <return>-1</return> if <strong>$string1</strong> is less than <strong>$string2</strong>.
       
       Returns <return>1</return> if <strong>$string1</strong> is greater than <strong>$string2</strong>.
       
       Returns <return>0</return> if both strings are equal.


id: sodium_crypto_aead_aes256gcm_decrypt
type: function
doc:
<comment>Description:</comment>
  Verify then decrypt a message with AES-256-GCM
  
  Verify then decrypt with AES-256-GCM. Only available if
  <strong>sodium_crypto_aead_aes256gcm_is_available()</strong> returns <info>true</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Must be in the format provided by <strong>sodium_crypto_aead_aes256gcm_encrypt()</strong>
                            (ciphertext and tag, concatenated).
  <info>string</info>  <strong>$additional_data</strong>  Additional, authenticated data. This is used in the verification of the
                            authentication tag appended to the ciphertext, but it is not encrypted
                            or stored in the ciphertext.
  <info>string</info>  <strong>$nonce</strong>            A number that must be only used once, per message. 12 bytes long.
  <info>string</info>  <strong>$key</strong>              Encryption key (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  Returns the plaintext on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_aead_aes256gcm_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt then authenticate with AES-256-GCM
  
  Encrypt then authenticate with AES-256-GCM. Only available if
  <strong>sodium_crypto_aead_aes256gcm_is_available()</strong> returns <info>true</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          The plaintext message to encrypt.
  <info>string</info>  <strong>$additional_data</strong>  Additional, authenticated data. This is used in the verification of the
                            authentication tag appended to the ciphertext, but it is not encrypted
                            or stored in the ciphertext.
  <info>string</info>  <strong>$nonce</strong>            A number that must be only used once, per message. 12 bytes long.
  <info>string</info>  <strong>$key</strong>              Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Returns the ciphertext and authentication tag as a string of raw binary bytes. (Format:
          ciphertext, then tag.)


id: sodium_crypto_aead_aes256gcm_is_available
type: function
doc:
<comment>Description:</comment>
  Check if hardware supports AES256-GCM
  
  The return value of this function depends on whether or not the hardware supports
  hardware-accelerated AES.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if it is safe to encrypt with AES-256-GCM, and <info>false</info> otherwise.


id: sodium_crypto_aead_aes256gcm_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random AES-256-GCM key
  
  Generate a random key for use with <strong>sodium_crypto_aead_aes256gcm_encrypt()</strong> and
  <strong>sodium_crypto_aead_aes256gcm_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a 256-bit random key.


id: sodium_crypto_aead_chacha20poly1305_decrypt
type: function
doc:
<comment>Description:</comment>
  Verify then decrypt with ChaCha20-Poly1305
  
  Verify then decrypt with ChaCha20-Poly1305.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Must be in the format provided by
                            <strong>sodium_crypto_aead_chacha20poly1305_encrypt()</strong> (ciphertext and tag,
                            concatenated).
  <info>string</info>  <strong>$additional_data</strong>  Additional, authenticated data. This is used in the verification of the
                            authentication tag appended to the ciphertext, but it is not encrypted
                            or stored in the ciphertext.
  <info>string</info>  <strong>$nonce</strong>            A number that must be only used once, per message. 8 bytes long.
  <info>string</info>  <strong>$key</strong>              Encryption key (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  Returns the plaintext on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_aead_chacha20poly1305_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt then authenticate with ChaCha20-Poly1305
  
  Encrypt then authenticate with ChaCha20-Poly1305.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          The plaintext message to encrypt.
  <info>string</info>  <strong>$additional_data</strong>  Additional, authenticated data. This is used in the verification of the
                            authentication tag appended to the ciphertext, but it is not encrypted
                            or stored in the ciphertext.
  <info>string</info>  <strong>$nonce</strong>            A number that must be only used once, per message. 8 bytes long.
  <info>string</info>  <strong>$key</strong>              Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Returns the ciphertext and tag on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_aead_chacha20poly1305_ietf_decrypt
type: function
doc:
<comment>Description:</comment>
  Verify that the ciphertext includes a valid tag
  
  Verify then decrypt with ChaCha20-Poly1305 (IETF variant).
  
  The IETF variant uses 96-bit nonces and 32-bit internal counters, instead of 64-bit for both.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Must be in the format provided by
                            <strong>sodium_crypto_aead_chacha20poly1305_ietf_encrypt()</strong> (ciphertext and tag,
                            concatenated).
  <info>string</info>  <strong>$additional_data</strong>  Additional, authenticated data. This is used in the verification of the
                            authentication tag appended to the ciphertext, but it is not encrypted
                            or stored in the ciphertext.
  <info>string</info>  <strong>$nonce</strong>            A number that must be only used once, per message. 12 bytes long.
  <info>string</info>  <strong>$key</strong>              Encryption key (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  Returns the plaintext on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_aead_chacha20poly1305_ietf_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt a message
  
  Encrypt then authenticate with ChaCha20-Poly1305 (IETF variant).
  
  The IETF variant uses 96-bit nonces and 32-bit internal counters, instead of 64-bit for both.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          The plaintext message to encrypt.
  <info>string</info>  <strong>$additional_data</strong>  Additional, authenticated data. This is used in the verification of the
                            authentication tag appended to the ciphertext, but it is not encrypted
                            or stored in the ciphertext.
  <info>string</info>  <strong>$nonce</strong>            A number that must be only used once, per message. 12 bytes long.
  <info>string</info>  <strong>$key</strong>              Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Returns the ciphertext and tag on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_aead_chacha20poly1305_ietf_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random ChaCha20-Poly1305 (IETF) key.
  
  Generate a random key for use with <strong>sodium_crypto_aead_chacha20poly1305_ietf_encrypt()</strong> and
  <strong>sodium_crypto_aead_chacha20poly1305_ietf_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a 256-bit random key.


id: sodium_crypto_aead_chacha20poly1305_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random ChaCha20-Poly1305 key.
  
  Generate a random key for use with <strong>sodium_crypto_aead_chacha20poly1305_encrypt()</strong> and
  <strong>sodium_crypto_aead_chacha20poly1305_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a 256-bit random key.


id: sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
type: function
doc:
<comment>Description:</comment>
  (Preferred) Verify then decrypt with XChaCha20-Poly1305
  
  Verify then decrypt with ChaCha20-Poly1305 (eXtended-nonce variant).
  
  Generally, XChaCha20-Poly1305 is the best of the provided AEAD modes to use.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>       Must be in the format provided by
                            <strong>sodium_crypto_aead_chacha20poly1305_ietf_encrypt()</strong> (ciphertext and tag,
                            concatenated).
  <info>string</info>  <strong>$additional_data</strong>  Additional, authenticated data. This is used in the verification of the
                            authentication tag appended to the ciphertext, but it is not encrypted
                            or stored in the ciphertext.
  <info>string</info>  <strong>$nonce</strong>            A number that must be only used once, per message. 24 bytes long. This
                            is a large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>              Encryption key (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  Returns the plaintext on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
type: function
doc:
<comment>Description:</comment>
  (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
  
  Encrypt then authenticate with XChaCha20-Poly1305 (eXtended-nonce variant).
  
  Generally, XChaCha20-Poly1305 is the best of the provided AEAD modes to use.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>          The plaintext message to encrypt.
  <info>string</info>  <strong>$additional_data</strong>  Additional, authenticated data. This is used in the verification of the
                            authentication tag appended to the ciphertext, but it is not encrypted
                            or stored in the ciphertext.
  <info>string</info>  <strong>$nonce</strong>            A number that must be only used once, per message. 24 bytes long. This
                            is a large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>              Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Returns the ciphertext and tag on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_aead_xchacha20poly1305_ietf_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random XChaCha20-Poly1305 key.
  
  Generate a random key for use with <strong>sodium_crypto_aead_xchacha20poly1305_ietf_encrypt()</strong> and
  <strong>sodium_crypto_aead_xchacha20poly1305_ietf_decrypt()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a 256-bit random key.


id: sodium_crypto_auth
type: function
doc:
<comment>Description:</comment>
  Compute a tag for the message
  
  Symmetric message authentication via <strong>sodium_crypto_auth()</strong> provides integrity, but not
  confidentiality.
  
  Unlike with digital signatures (e.g. <strong>sodium_crypto_sign_detached()</strong>), any party capable of
  verifying a message is also capable of authenticating their own messages. (Hence, symmetric
  authentication.)

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message you intend to authenticate
  <info>string</info>  <strong>$key</strong>      Authentication key

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


id: sodium_crypto_auth_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random key for sodium_crypto_auth
  
  Generate a key for use with <strong>sodium_crypto_auth()</strong> and <strong>sodium_crypto_auth_verify()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a 256-bit random key.


id: sodium_crypto_auth_verify
type: function
doc:
<comment>Description:</comment>
  Verifies that the tag is valid for the message
  
  Verify the authentication tag is valid for a given message and key.
  
  Unlike with digital signatures (e.g. <strong>sodium_crypto_sign_verify_detached()</strong>), any party capable of
  verifying a message is also capable of authenticating their own messages. (Hence, symmetric
  authentication.)

<comment>Param:</comment>
  <info>string</info>  <strong>$mac</strong>      Authentication tag produced by <strong>sodium_crypto_auth()</strong>
  <info>string</info>  <strong>$message</strong>  Message
  <info>string</info>  <strong>$key</strong>      Authentication key

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: sodium_crypto_box
type: function
doc:
<comment>Description:</comment>
  Authenticated public-key encryption
  
  Encrypt a message using asymmetric (public key) cryptography.
  
  The algorithm used by functions prefixed with <strong>sodium_crypto_box()</strong> are Elliptic Curve
  Diffie-Hellman over the Montgomery curve, Curve25519; usually abbreviated as X25519.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>   The message to be encrypted.
  <info>string</info>  <strong>$nonce</strong>     A number that must be only used once, per message. 24 bytes long. This is a
                     large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key_pair</strong>  See <strong>sodium_crypto_box_keypair_from_secretkey_and_publickey()</strong>. This should
                     include the sender's X25519 secret key and the recipient's X25519 public key.

<comment>Return:</comment>
  <info>string</info>  Returns the encrypted message (ciphertext plus authentication tag). The ciphertext will be
          16 bytes longer than the plaintext, and a raw binary string. See <strong>sodium_bin2base64()</strong> for
          safe encoding for storage.


id: sodium_crypto_box_keypair
type: function
doc:
<comment>Description:</comment>
  Randomly generate a secret key and a corresponding public key
  
  Generates a secret key and a public key as one string.
  
  To get the secret key out of this unified keypair string, see <strong>sodium_crypto_box_secretkey()</strong>. To
  get the public key out of this unified keypair string, see <strong>sodium_crypto_box_publickey()</strong>.

<comment>Return:</comment>
  <info>string</info>  One string containing both the X25519 secret key and corresponding X25519 public key.


id: sodium_crypto_box_keypair_from_secretkey_and_publickey
type: function
doc:
<comment>Description:</comment>
  Create a unified keypair string from a secret key and public key
  
  This function exists to satisfy the API requirements of e.g. <strong>crypto_box()</strong>. Pass in one party's
  secret key and the other's public key, and you will obtain a "keypair" for your conversation.

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Secret key.
  <info>string</info>  <strong>$public_key</strong>  Public key.

<comment>Return:</comment>
  <info>string</info>  X25519 Keypair.


id: sodium_crypto_box_open
type: function
doc:
<comment>Description:</comment>
  Authenticated public-key decryption
  
  Decrypt a message using asymmetric (public key) cryptography.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>  The encrypted message to attempt to decrypt.
  <info>string</info>  <strong>$nonce</strong>       A number that must be only used once, per message. 24 bytes long. This is a
                       large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key_pair</strong>    See <strong>sodium_crypto_box_keypair_from_secretkey_and_publickey()</strong>. This should
                       include the sender's public key and the recipient's secret key.

<comment>Return:</comment>
  <info>string|false</info>  Returns the plaintext message on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_box_publickey
type: function
doc:
<comment>Description:</comment>
  Extract the public key from a crypto_box keypair
  
  Given a keypair, fetch only the public key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  A keypair, such as one generated by <strong>sodium_crypto_box_keypair()</strong> or
                     <strong>sodium_crypto_box_seed_keypair()</strong>

<comment>Return:</comment>
  <info>string</info>  X25519 public key.


id: sodium_crypto_box_publickey_from_secretkey
type: function
doc:
<comment>Description:</comment>
  Calculate the public key from a secret key
  
  Given a secret key, calculate the corresponding public key.
  
  This only works with the type of keys intended for use with <strong>crypto_box()</strong> (which uses Elliptic
  Curve Diffie-Hellman over the Montgomery curve, Curve25519; abbreviated as X25519), not
  <strong>crypto_sign()</strong> (which uses Edwards Digital Signature Algorithm over the Edwards Curve with the
  corresponding paramaters; abbreviated Ed25519).

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  X25519 secret key

<comment>Return:</comment>
  <info>string</info>  X25519 public key.


id: sodium_crypto_box_seal
type: function
doc:
<comment>Description:</comment>
  Anonymous public-key encryption
  
  Encrypt a message such that only the recipient can decrypt it.
  
  Unlike with <strong>sodium_crypto_box()</strong>, you only need to know the recipient's public key to use
  <strong>sodium_crypto_box_seal()</strong>. One consequence of this convenience, however, is that the ciphertext
  isn't bound to a static public key, and is therefore not authenticated. Hence, anonymous
  public-key encryption.
  
  <strong>sodium_crypto_box_seal()</strong> still provides ciphertext integrity. Just not sender identity
  authentication.
  
  If you also need sender authentication, the <strong>sodium_crypto_sign()</strong> functions are likely the best
  place to start.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>     The message to encrypt.
  <info>string</info>  <strong>$public_key</strong>  The public key that corresponds to the only key that can decrypt the message.

<comment>Return:</comment>
  <info>string</info>  A ciphertext string in the format of (one-time public key, encrypted message,
          authentication tag).


id: sodium_crypto_box_seal_open
type: function
doc:
<comment>Description:</comment>
  Anonymous public-key decryption
  
  Decrypt a message that was encrypted with <strong>sodium_crypto_box_seal()</strong>

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>  The encrypted message
  <info>string</info>  <strong>$key_pair</strong>    The keypair of the recipient. Must include the secret key.

<comment>Return:</comment>
  <info>string|false</info>  The plaintext on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_box_secretkey
type: function
doc:
<comment>Description:</comment>
  Extracts the secret key from a crypto_box keypair
  
  Given a keypair, fetch only the secret key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  A keypair, such as one generated by <strong>sodium_crypto_box_keypair()</strong> or
                     <strong>sodium_crypto_box_seed_keypair()</strong>

<comment>Return:</comment>
  <info>string</info>  X25519 secret key.


id: sodium_crypto_box_seed_keypair
type: function
doc:
<comment>Description:</comment>
  Deterministically derive the key pair from a single key
  
  Clamps the seed to form a secret key, derives the public key, and returns the two as a keypair.
  
  The <return>*_seed_keypair</return> functions are ideal for generating a keypair from a password and salt. Use the
  result as a <strong>$seed</strong> to generate the desired keys.

<comment>Param:</comment>
  <info>string</info>  <strong>$seed</strong>  Some cryptographic input. Must be 32 bytes.

<comment>Return:</comment>
  <info>string</info>  X25519 Keypair (secret key and public key).


id: sodium_crypto_core_ristretto255_add
type: function
doc:
<comment>Description:</comment>
  Adds an element
  
  Adds an element <strong>$q</strong> to <strong>$p</strong>. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$p</strong>  An element.
  <info>string</info>  <strong>$q</strong>  An element.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Maps a vector
  
  Maps a 64-bytes vector <strong>$s</strong> to a group element. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  A 64-bytes vector.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Determines if a point on the ristretto255 curve
  
  Determines if a point on the ristretto255 curve, in canonical form, on the main subgroup, and that
  the point doesn't have a small order. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  An Elliptic-curve point.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$s</strong> is on the ristretto255 curve, <info>false</info> otherwise.

<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>
  Generates a random key
  
  Generates a random key. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Adds a scalar value
  
  Adds an element <strong>$y</strong> to <strong>$x</strong>. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$x</strong>  Scalar, representing the X coordinate.
  <info>string</info>  <strong>$y</strong>  Scalar, representing the Y coordinate.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  The sodium_crypto_core_ristretto255_scalar_complement purpose
  
  Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Scalar value.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Inverts a scalar value
  
  Inverts a scalar value. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Scalar value.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Multiplies a scalar value
  
  Multiplies a scalar value. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$x</strong>  Scalar, representing the X coordinate.
  <info>string</info>  <strong>$y</strong>  Scalar, representing the Y coordinate.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Negates a scalar value
  
  Negates a scalar value. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Scalar value.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Generates a random key
  
  Generates a random key. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Reduces a scalar value
  
  Reduces a scalar value. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$s</strong>  Scalar value.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Subtracts a scalar value
  
  Subtracts a scalar <strong>$y</strong> from <strong>$x</strong>. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$x</strong>  Scalar, representing the X coordinate.
  <info>string</info>  <strong>$y</strong>  Scalar, representing the Y coordinate.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Subtracts an element
  
  Subtracts an element <strong>$q</strong> from <strong>$p</strong>. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$p</strong>  An element.
  <info>string</info>  <strong>$q</strong>  An element.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Get a hash of the message
  
  Hash a message with BLAKE2b.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message being hashed.
  <info>string</info>  <strong>$key</strong>      (Optional) cryptographic key. This serves the same function as a HMAC key, but
                    it's utilized as a reserved section of the internal BLAKE2 state.
  <info>int</info>     <strong>$length</strong>   Output size.

<comment>Return:</comment>
  <info>string</info>  The cryptographic hash as raw bytes. If a hex-encoded output is desired, the result can be
          passed to <strong>sodium_bin2hex()</strong>.


id: sodium_crypto_generichash_final
type: function
doc:
<comment>Description:</comment>
  Complete the hash
  
  The finalization method for the streaming generichash API.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>   Hash state returned from <strong>sodium_crypto_generichash_init()</strong>
  <info>int</info>     <strong>$length</strong>  Output length.

<comment>Return:</comment>
  <info>string</info>  Cryptographic hash.


id: sodium_crypto_generichash_init
type: function
doc:
<comment>Description:</comment>
  Initialize a hash for streaming
  
  The initialization method for the streaming generichash API.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>     The generichash key.
  <info>int</info>     <strong>$length</strong>  The expected output length of the hash function.

<comment>Return:</comment>
  <info>string</info>  Returns a hash state, serialized as a raw binary string.


id: sodium_crypto_generichash_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random generichash key
  
  Generate a random key for use with the generichash API.

<comment>Return:</comment>
  <info>string</info>  A random 256-bit key.


id: sodium_crypto_generichash_update
type: function
doc:
<comment>Description:</comment>
  Add message to a hash
  
  Appends a message to the internal hash state.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>    The return value of <strong>sodium_crypto_generichash_init()</strong>.
  <info>string</info>  <strong>$message</strong>  Data to append to the hashing state.

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <info>true</info>.


id: sodium_crypto_kdf_derive_from_key
type: function
doc:
<comment>Description:</comment>
  Derive a subkey
  
  Derive a subkey from a root key and additional context.
  
  Similar to <strong>hash_hkdf()</strong>.

<comment>Param:</comment>
  <info>int</info>     <strong>$subkey_length</strong>  Length of the key to return (in bytes)
  <info>int</info>     <strong>$subkey_id</strong>      Return the Nth subkey from a given root key. Useful for seeking.
  <info>string</info>  <strong>$context</strong>        Application-specific context.
  <info>string</info>  <strong>$key</strong>            The root key from which the subkey is derived.

<comment>Return:</comment>
  <info>string</info>  A string of pseudorandom (raw binary) bytes.


id: sodium_crypto_kdf_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random root key for the KDF interface
  
  Generates a random key suitable for serving as the root key for
  <strong>sodium_crypto_kdf_derive_from_key()</strong>.

<comment>Return:</comment>
  <info>string</info>  A random 256-bit key.


id: sodium_crypto_kx_client_session_keys
type: function
doc:
<comment>Description:</comment>
  Calculate the client-side session keys.
  
  Calculate the client-side session keys, using the X25519 + BLAKE2b key-exchange method.

<comment>Param:</comment>
  <info>string</info>  <strong>$client_key_pair</strong>  A crypto_kx keypair, such as one generated by
                            <strong>sodium_crypto_kx_keypair()</strong>.
  <info>string</info>  <strong>$server_key</strong>       A crypto_kx public key.

<comment>Return:</comment>
  <info>array</info>  An array consisting of two strings. The first should be used for receiving data from the
         server. The second should be used for sending data to the server.


id: sodium_crypto_kx_keypair
type: function
doc:
<comment>Description:</comment>
  Creates a new sodium keypair
  
  Create a new sodium keypair consisting of the secret key (32 bytes) followed by the public key (32
  bytes). The keys can be retrieved by calling <strong>sodium_crypto_kx_secretkey()</strong> and
  <strong>sodium_crypto_kx_publickey()</strong>, respectively.

<comment>Return:</comment>
  <info>string</info>  Returns the new keypair on success; throws an exception otherwise.


id: sodium_crypto_kx_publickey
type: function
doc:
<comment>Description:</comment>
  Extract the public key from a crypto_kx keypair
  
  Extract the public key from a crypto_kx keypair.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  X25519 keypair, such as one generated by <strong>sodium_crypto_kx_keypair()</strong>.

<comment>Return:</comment>
  <info>string</info>  X25519 public key.


id: sodium_crypto_kx_secretkey
type: function
doc:
<comment>Description:</comment>
  Extract the secret key from a crypto_kx keypair.
  
  Extract the secret key from a crypto_kx keypair.

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  X25519 keypair, such as one generated by <strong>sodium_crypto_kx_keypair()</strong>.

<comment>Return:</comment>
  <info>string</info>  X25519 secret key.


id: sodium_crypto_kx_seed_keypair
type: function
doc:
<comment>Description:</comment>
  Description
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<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>
  Calculate the server-side session keys.
  
  Calculate the server-side session keys, using the X25519 + BLAKE2b key-exchange method.

<comment>Param:</comment>
  <info>string</info>  <strong>$server_key_pair</strong>  A crypto_kx keypair, such as one generated by
                            <strong>sodium_crypto_kx_keypair()</strong>.
  <info>string</info>  <strong>$client_key</strong>       A crypto_kx public key.

<comment>Return:</comment>
  <info>array</info>  An array consisting of two strings. The first should be used for receiving data from the
         client. The second should be used for sending data to the client.


id: sodium_crypto_pwhash
type: function
doc:
<comment>Description:</comment>
  Derive a key from a password, using Argon2
  
  This function provides low-level access to libsodium's crypto_pwhash key derivation function.
  Unless you have specific reason to use this function, you should use <strong>sodium_crypto_pwhash_str()</strong> or
  <strong>password_hash()</strong> functions instead.
  
  A common reason to use this particular function is to derive the seeds for cryptographic keys from
  a password and salt, and then use these seeds to generate the actual keys needed for some purpose
  (e.g. <strong>sodium_crypto_sign_detached()</strong>).

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>    <info>int</info>; The length of the password hash to generate, in bytes.
  <info>string</info>  <strong>$password</strong>  <info>string</info>; The password to generate a hash for.
  <info>string</info>  <strong>$salt</strong>      A salt to add to the password before hashing. The salt should be unpredictable,
                     ideally generated from a good random number source such as <strong>random_bytes()</strong>, and
                     have a length of at least <info>SODIUM_CRYPTO_PWHASH_SALTBYTES</info> bytes.
  <info>int</info>     <strong>$opslimit</strong>  Represents a maximum amount of computations to perform. Raising this number
                     will make the function require more CPU cycles to compute a key. There are some
                     constants available to set the operations limit to appropriate values depending
                     on intended use, in order of strength:
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE</info> and
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE</info>.
  <info>int</info>     <strong>$memlimit</strong>  The maximum amount of RAM that the function will use, in bytes. There are
                     constants to help you choose an appropriate value, in order of size:
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE</info>, and
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE</info>. Typically these should be paired with
                     the matching <strong>$opslimit</strong> values.
  <info>int</info>     <strong>$algo</strong>      <info>int</info> A number indicating the hash algorithm to use. By default
                     <info>SODIUM_CRYPTO_PWHASH_ALG_DEFAULT</info> (the currently recommended algorithm, which
                     can change from one version of libsodium to another), or explicitly using
                     <info>SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13</info>, representing the Argon2id algorithm
                     version 1.3.

<comment>Return:</comment>
  <info>string</info>  Returns the derived key. The return value is a binary string of the hash, not an
          ASCII-encoded representation, and does not contain additional information about the
          parameters used to create the hash, so you will need to keep that information if you are
          ever going to verify the password in future. Use <strong>sodium_crypto_pwhash_str()</strong> to avoid
          needing to do all that.


id: sodium_crypto_pwhash_scryptsalsa208sha256
type: function
doc:
<comment>Description:</comment>
  Derives a key from a password, using scrypt
  
  This is the scrypt counterpart to <strong>sodium_crypto_pwhash()</strong>.
  
  A common reason to use this particular function is to derive the seeds for cryptographic keys from
  a password and salt, and then use these seeds to generate the actual keys needed for some purpose
  (e.g. <strong>sodium_crypto_sign_detached()</strong>).

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>    The length of the password hash to generate, in bytes.
  <info>string</info>  <strong>$password</strong>  The password to generate a hash for.
  <info>string</info>  <strong>$salt</strong>      A salt to add to the password before hashing. The salt should be unpredictable,
                     ideally generated from a good random number source such as <strong>random_bytes()</strong>, and
                     have a length of at least <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES</info>
                     bytes.
  <info>int</info>     <strong>$opslimit</strong>  Represents a maximum amount of computations to perform. Raising this number
                     will make the function require more CPU cycles to compute a key. There are some
                     constants available to set the operations limit to appropriate values depending
                     on intended use, in order of strength:
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE</info> and
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE</info>.
  <info>int</info>     <strong>$memlimit</strong>  The maximum amount of RAM that the function will use, in bytes. There are
                     constants to help you choose an appropriate value, in order of size:
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE</info> and
                     <info>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE</info>. Typically these
                     should be paired with the matching <strong>$opslimit</strong> values.

<comment>Return:</comment>
  <info>string</info>  A string of bytes of the desired length.


id: sodium_crypto_pwhash_scryptsalsa208sha256_str
type: function
doc:
<comment>Description:</comment>
  Get an ASCII encoded hash
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<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>
  Verify that the password is a valid password verification string
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<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>
  Get an ASCII-encoded hash
  
  Uses a CPU- and memory-hard hash algorithm along with a randomly-generated salt, and memory and
  CPU limits to generate an ASCII-encoded hash suitable for password storage.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  <info>string</info>; The password to generate a hash for.
  <info>int</info>     <strong>$opslimit</strong>  Represents a maximum amount of computations to perform. Raising this number
                     will make the function require more CPU cycles to compute a key. There are
                     constants available to set the operations limit to appropriate values depending
                     on intended use, in order of strength:
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE</info> and
                     <info>SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE</info>.
  <info>int</info>     <strong>$memlimit</strong>  The maximum amount of RAM that the function will use, in bytes. There are
                     constants to help you choose an appropriate value, in order of size:
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE</info>,
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE</info>, and
                     <info>SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE</info>. Typically these should be paired with
                     the matching opslimit values.

<comment>Return:</comment>
  <info>string</info>  Returns the hashed password.
          
          In order to produce the same password hash from the same password, the same values for
          <strong>$opslimit</strong> and <strong>$memlimit</strong> must be used. These are embedded within the generated hash, so
          everything that's needed to verify the hash is included. This allows the
          <strong>sodium_crypto_pwhash_str_verify()</strong> function to verify the hash without needing separate
          storage for the other parameters.

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


id: sodium_crypto_pwhash_str_needs_rehash
type: function
doc:
<comment>Description:</comment>
  Determine whether or not to rehash a password
  
  Determine whether or not to rehash a password, based on the current hash <strong>$opslimit</strong> and <strong>$memlimit</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  Password hash
  <info>int</info>     <strong>$opslimit</strong>  Configured opslimit; see <strong>sodium_crypto_pwhash_str()</strong>
  <info>int</info>     <strong>$memlimit</strong>  Configured memlimit; see <strong>sodium_crypto_pwhash_str()</strong>

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the provided memlimit/opslimit do not match what's stored in the hash.
        Returns <info>false</info> if they match.


id: sodium_crypto_pwhash_str_verify
type: function
doc:
<comment>Description:</comment>
  Verifies that a password matches a hash
  
  Checks that a password hash created using <strong>sodium_crypto_pwhash_str()</strong> matches a given plain-text
  password. Note that the parameters are in the opposite order to the same parameters in the similar
  <strong>password_verify()</strong> function.

<comment>Param:</comment>
  <info>string</info>  <strong>$hash</strong>      Um hash criado por <strong>password_hash()</strong>.
  <info>string</info>  <strong>$password</strong>  A senha do usuário.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the password and hash match, or <info>false</info> otherwise.

<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>
  Compute a shared secret given a user's secret key and another user's public key
  
  Elliptic Curve Diffie-Hellman. Calculates scalar n times point p, on an elliptic curve.

<comment>Param:</comment>
  <info>string</info>  <strong>$n</strong>  scalar, which is typically a secret key
  <info>string</info>  <strong>$p</strong>  point (x-coordinate), which is typically a public key

<comment>Return:</comment>
  <info>string</info>  A 32-byte random string.


id: sodium_crypto_scalarmult_base
type: function
doc:
<comment>Description:</comment>
  Sinônimo de sodium_crypto_box_publickey_from_secretkey
  
  Esta função é um apelido para:  <strong>sodium_crypto_box_publickey_from_secretkey()</strong>.


id: sodium_crypto_scalarmult_ristretto255
type: function
doc:
<comment>Description:</comment>
  Computes a shared secret
  
  Calculates scalar <strong>$n</strong> times point <strong>$p</strong>. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$n</strong>  A scalar, which is typically a secret key.
  <info>string</info>  <strong>$p</strong>  A point (x-coordinate), which is typically a public key.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <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>
  Calculates the public key from a secret key
  
  Given a secret key, calculates the corresponding public key. Available as of libsodium 1.0.18.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

<comment>Param:</comment>
  <info>string</info>  <strong>$n</strong>  A secret key.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte random <info>string</info>.

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


id: sodium_crypto_secretbox
type: function
doc:
<comment>Description:</comment>
  Authenticated shared-key encryption
  
  Encrypt a message with a symmetric (shared) key.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The plaintext message to encrypt.
  <info>string</info>  <strong>$nonce</strong>    A number that must be only used once, per message. 24 bytes long. This is a
                    large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>      Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Returns the encrypted string.

<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>
  Generate random key for sodium_crypto_secretbox
  
  Generate a key for use with <strong>sodium_crypto_secretbox()</strong> and <strong>sodium_crypto_secretbox_open()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns the generated string of cryptographically secure random bytes.

<comment>See Also:</comment>
   * <strong>sodium_bin2hex()</strong>
   * <strong>random_bytes()</strong>


id: sodium_crypto_secretbox_open
type: function
doc:
<comment>Description:</comment>
  Authenticated shared-key decryption
  
  Decrypt an encrypted message with a symmetric (shared) key.

<comment>Param:</comment>
  <info>string</info>  <strong>$ciphertext</strong>  Must be in the format provided by <strong>sodium_crypto_secretbox()</strong> (ciphertext and
                       tag, concatenated).
  <info>string</info>  <strong>$nonce</strong>       A number that must be only used once, per message. 24 bytes long. This is a
                       large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>         Encryption key (256-bit).

<comment>Return:</comment>
  <info>string|false</info>  The decrypted string on success ou <info>false</info> em caso de falha.

<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>
  Initialize a secretstream context for decryption
  
  Initialize a secretstream context for decryption.

<comment>Param:</comment>
  <info>string</info>  <strong>$header</strong>  The header of the secretstream. This should be one of the values produced by
                   <strong>sodium_crypto_secretstream_xchacha20poly1305_init_push()</strong>.
  <info>string</info>  <strong>$key</strong>     Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Secretstream state.


id: sodium_crypto_secretstream_xchacha20poly1305_init_push
type: function
doc:
<comment>Description:</comment>
  Initialize a secretstream context for encryption
  
  Initialize a secretstream context for encryption.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  Cryptography key. See <strong>sodium_crypto_secretstream_xchacha20poly1305_keygen()</strong>.

<comment>Return:</comment>
  <info>array</info>  An array with two string values:


id: sodium_crypto_secretstream_xchacha20poly1305_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random secretstream key.
  
  Generate a random secretstream key.

<comment>Return:</comment>
  <info>string</info>  Returns a string of random bytes.


id: sodium_crypto_secretstream_xchacha20poly1305_pull
type: function
doc:
<comment>Description:</comment>
  Decrypt a chunk of data from an encrypted stream
  
  Decrypt a chunk of data from an encrypted stream.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>            See <strong>sodium_crypto_secretstream_xchacha20poly1305_init_pull()</strong> and
                            <strong>sodium_crypto_secretstream_xchacha20poly1305_init_push()</strong>
  <info>string</info>  <strong>$ciphertext</strong>       The ciphertext chunk to decrypt.
  <info>string</info>  <strong>$additional_data</strong>  Optional additional data to include in the authentication tag.

<comment>Return:</comment>
  <info>array|false</info>  An array with two values: <info>string</info>; The decrypted chunk <info>int</info>; An optional tag (if
               provided during push). Possible values:
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE</info>: the most common tag, that
               doesn't add any information about the nature of the message.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL</info>: indicates that the message
               marks the end of the stream, and erases the secret key used to encrypt the previous
               sequence. <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH</info>: indicates that the
               message marks the end of a set of messages, but not the end of the stream. For
               example, a huge JSON string sent as multiple chunks can use this tag to indicate to
               the application that the string is complete and that it can be decoded. But the
               stream itself is not closed, and more data may follow.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY</info>: "forget" the key used to
               encrypt this message and the previous ones, and derive a new secret key.
               
               <info>string</info>; The decrypted chunk
               
               <info>int</info>; An optional tag (if provided during push). Possible values:
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE</info>: the most common tag, that
               doesn't add any information about the nature of the message.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL</info>: indicates that the message
               marks the end of the stream, and erases the secret key used to encrypt the previous
               sequence. <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH</info>: indicates that the
               message marks the end of a set of messages, but not the end of the stream. For
               example, a huge JSON string sent as multiple chunks can use this tag to indicate to
               the application that the string is complete and that it can be decoded. But the
               stream itself is not closed, and more data may follow.
               <info>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY</info>: "forget" the key used to
               encrypt this message and the previous ones, and derive a new secret key.


id: sodium_crypto_secretstream_xchacha20poly1305_push
type: function
doc:
<comment>Description:</comment>
  Encrypt a chunk of data so that it can safely be decrypted in a streaming API
  
  Encrypt a chunk of data so that it can safely be decrypted in a streaming API.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>            See <strong>sodium_crypto_secretstream_xchacha20poly1305_init_pull()</strong> and
                            <strong>sodium_crypto_secretstream_xchacha20poly1305_init_push()</strong>
  <info>string</info>  <strong>$message</strong>          
  <info>string</info>  <strong>$additional_data</strong>  
  <info>int</info>     <strong>$tag</strong>              Optional. Can be used to assert decryption behavior (i.e. re-keying or
                            indicating the final chunk in a stream).

<comment>Return:</comment>
  <info>string</info>  Returns the encrypted ciphertext.


id: sodium_crypto_secretstream_xchacha20poly1305_rekey
type: function
doc:
<comment>Description:</comment>
  Explicitly rotate the key in the secretstream state
  
  Explicitly rotate the key in the secretstream state. Overwrites the value passed in.

<comment>Param:</comment>
  <info>string</info>  <strong>$state</strong>  Secretstream state.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.


id: sodium_crypto_shorthash
type: function
doc:
<comment>Description:</comment>
  Compute a short hash of a message and key
  
  <strong>sodium_crypto_shorthash()</strong> wraps a hash function called SipHash-2-4, which is ideal for
  implementing hash tables that are not susceptible to hash collision denial of service attacks
  (Hash-DoS).
  
  SipHash-2-4 isn't a general purpose cryptographic hash function.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message to hash.
  <info>string</info>  <strong>$key</strong>      The hash key.

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


id: sodium_crypto_shorthash_keygen
type: function
doc:
<comment>Description:</comment>
  Get random bytes for key
  
  Generate a key for use with <strong>sodium_crypto_shorthash()</strong>.
  
  Esta função não
  está documentada; apenas a lista de argumentos está disponível.

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


id: sodium_crypto_sign
type: function
doc:
<comment>Description:</comment>
  Sign a message
  
  Sign a message with a secret key, that can be verified by the corresponding public key. This
  function attaches the signature to the message. See <strong>sodium_crypto_sign_detached()</strong> for detached
  signatures.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>     Message to sign.
  <info>string</info>  <strong>$secret_key</strong>  Secret key. See <strong>sodium_crypto_sign_secretkey()</strong>

<comment>Return:</comment>
  <info>string</info>  Signed message (not encrypted).


id: sodium_crypto_sign_detached
type: function
doc:
<comment>Description:</comment>
  Sign the message
  
  Sign a message with a secret key, that can be verified by the corresponding public key. This
  function returns a detached signature.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>     Message to sign.
  <info>string</info>  <strong>$secret_key</strong>  Secret key. See <strong>sodium_crypto_sign_secretkey()</strong>

<comment>Return:</comment>
  <info>string</info>  Cryptographic signature.


id: sodium_crypto_sign_ed25519_pk_to_curve25519
type: function
doc:
<comment>Description:</comment>
  Convert an Ed25519 public key to a Curve25519 public key
  
  Given an Ed25519 public key, calculate the birationally equivalent X25519 public key.

<comment>Param:</comment>
  <info>string</info>  <strong>$public_key</strong>  Public key suitable for the crypto_sign functions.

<comment>Return:</comment>
  <info>string</info>  Public key suitable for the crypto_box functions.


id: sodium_crypto_sign_ed25519_sk_to_curve25519
type: function
doc:
<comment>Description:</comment>
  Convert an Ed25519 secret key to a Curve25519 secret key
  
  Given an Ed25519 secret key, calculate the birationally equivalent X25519 secret key.

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Secret key suitable for the crypto_sign functions.

<comment>Return:</comment>
  <info>string</info>  Secret key suitable for the crypto_box functions.


id: sodium_crypto_sign_keypair
type: function
doc:
<comment>Description:</comment>
  Randomly generate a secret key and a corresponding public key
  
  Generate a random Ed25519 keypair as one string.

<comment>Return:</comment>
  <info>string</info>  Ed25519 keypair.


id: sodium_crypto_sign_keypair_from_secretkey_and_publickey
type: function
doc:
<comment>Description:</comment>
  Join a secret key and public key together
  
  Join a secret key and public key together.

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Ed25519 secret key
  <info>string</info>  <strong>$public_key</strong>  Ed25519 public key

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


id: sodium_crypto_sign_open
type: function
doc:
<comment>Description:</comment>
  Check that the signed message has a valid signature
  
  Verify the signature attached to a message and return the message

<comment>Param:</comment>
  <info>string</info>  <strong>$signed_message</strong>  A message signed with <strong>sodium_crypto_sign()</strong>
  <info>string</info>  <strong>$public_key</strong>      An Ed25519 public key

<comment>Return:</comment>
  <info>string|false</info>  Returns the original signed message on success,  ou <info>false</info> em caso de falha.


id: sodium_crypto_sign_publickey
type: function
doc:
<comment>Description:</comment>
  Extract the Ed25519 public key from a keypair
  
  Extract the Ed25519 public key from a keypair

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  Ed25519 keypair (see: <strong>sodium_crypto_sign_keypair()</strong>)

<comment>Return:</comment>
  <info>string</info>  Ed25519 public key


id: sodium_crypto_sign_publickey_from_secretkey
type: function
doc:
<comment>Description:</comment>
  Extract the Ed25519 public key from the secret key
  
  Extract the Ed25519 public key from the secret key

<comment>Param:</comment>
  <info>string</info>  <strong>$secret_key</strong>  Ed25519 secret key

<comment>Return:</comment>
  <info>string</info>  Ed25519 public key


id: sodium_crypto_sign_secretkey
type: function
doc:
<comment>Description:</comment>
  Extract the Ed25519 secret key from a keypair
  
  Extract the Ed25519 secret key from a keypair

<comment>Param:</comment>
  <info>string</info>  <strong>$key_pair</strong>  Ed25519 keypair (see: <strong>sodium_crypto_sign_keypair()</strong>)

<comment>Return:</comment>
  <info>string</info>  Ed25519 secret key


id: sodium_crypto_sign_seed_keypair
type: function
doc:
<comment>Description:</comment>
  Deterministically derive the key pair from a single key
  
  Clamps the seed to form a secret key, derives the public key, and returns the two as a keypair.
  
  The <return>*_seed_keypair</return> functions are ideal for generating a keypair from a password and salt. Use the
  result as a <strong>$seed</strong> to generate the desired keys.

<comment>Param:</comment>
  <info>string</info>  <strong>$seed</strong>  Some cryptographic input. Must be 32 bytes.

<comment>Return:</comment>
  <info>string</info>  Keypair (secret key and public key)


id: sodium_crypto_sign_verify_detached
type: function
doc:
<comment>Description:</comment>
  Verify signature for the message
  
  Verify signature for the message

<comment>Param:</comment>
  <info>string</info>  <strong>$signature</strong>   The cryptographic signature obtained from <strong>sodium_crypto_sign_detached()</strong>
  <info>string</info>  <strong>$message</strong>     The message being verified
  <info>string</info>  <strong>$public_key</strong>  Ed25519 public key

<comment>Return:</comment>
  <info>bool</info>  Retorna <info>true</info> em caso de sucesso ou <info>false</info> em caso de falha.


id: sodium_crypto_stream
type: function
doc:
<comment>Description:</comment>
  Generate a deterministic sequence of bytes from a seed
  
  Generate a deterministic sequence of bytes from a seed, using the XSalsa20 stream cipher.

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>  The number of bytes to return.
  <info>string</info>  <strong>$nonce</strong>   A number that must be only used once, per message. 24 bytes long. This is a large
                   enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>     Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  String of pseudorandom bytes.


id: sodium_crypto_stream_keygen
type: function
doc:
<comment>Description:</comment>
  Generate a random sodium_crypto_stream key.
  
  Generate a key for use with <strong>sodium_crypto_stream()</strong> and <strong>sodium_crypto_stream_xor()</strong>.

<comment>Return:</comment>
  <info>string</info>  Encryption key (256-bit).


id: sodium_crypto_stream_xchacha20
type: function
doc:
<comment>Description:</comment>
  Expands the key and nonce into a keystream of pseudorandom bytes
  
  Expands the <strong>$key</strong> and <strong>$nonce</strong> into a keystream of pseudorandom bytes.

<comment>Param:</comment>
  <info>int</info>     <strong>$length</strong>  Number of bytes desired.
  <info>string</info>  <strong>$nonce</strong>   24-byte nonce.
  <info>string</info>  <strong>$key</strong>     Key, possibly generated from <strong>sodium_crypto_stream_xchacha20_keygen()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a pseudorandom stream that can be used with <strong>sodium_crypto_stream_xchacha20_xor()</strong>.


id: sodium_crypto_stream_xchacha20_keygen
type: function
doc:
<comment>Description:</comment>
  Returns a secure random key
  
  Returns a secure random key for use with <strong>sodium_crypto_stream_xchacha20()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns a 32-byte secure random key for use with <strong>sodium_crypto_stream_xchacha20()</strong>.


id: sodium_crypto_stream_xchacha20_xor
type: function
doc:
<comment>Description:</comment>
  Encrypts a message using a nonce and a secret key (no authentication)
  
  Encrypts a <strong>$message</strong> using a <strong>$nonce</strong> and a secret <strong>$key</strong> (no authentication).
  
  This encryption is unauthenticated, and does not prevent chosen-ciphertext attacks. Make sure to
  combine the ciphertext with a Message Authentication Code, for example with
  <strong>sodium_crypto_aead_xchacha20poly1305_ietf_encrypt()</strong> function, or <strong>sodium_crypto_auth()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message to encrypt.
  <info>string</info>  <strong>$nonce</strong>    24-byte nonce.
  <info>string</info>  <strong>$key</strong>      Key, possibly generated from <strong>sodium_crypto_stream_xchacha20_keygen()</strong>.

<comment>Return:</comment>
  <info>string</info>  Encrypted message.

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


id: sodium_crypto_stream_xchacha20_xor_ic
type: function
doc:
<comment>Description:</comment>
  Encrypts a message using a nonce and a secret key (no authentication)
  
  The function is similar to <strong>sodium_crypto_stream_xchacha20_xor()</strong> but adds the ability to set the
  initial value of the block counter to a non-zero value. This permits direct access to any block
  without having to compute the previous ones.
  
  This encryption is unauthenticated, and does not prevent chosen-ciphertext attacks. Make sure to
  combine the ciphertext with a Message Authentication Code, for example with
  <strong>sodium_crypto_aead_xchacha20poly1305_ietf_encrypt()</strong> function, or <strong>sodium_crypto_auth()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message to encrypt.
  <info>string</info>  <strong>$nonce</strong>    24-byte nonce.
  <info>int</info>     <strong>$counter</strong>  The initial value of the block counter.
  <info>string</info>  <strong>$key</strong>      Key, possibly generated from <strong>sodium_crypto_stream_xchacha20_keygen()</strong>.

<comment>Return:</comment>
  <info>string</info>  Encrypted message,  ou <info>false</info> em caso de falha.

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


id: sodium_crypto_stream_xor
type: function
doc:
<comment>Description:</comment>
  Encrypt a message without authentication
  
  This function encrypts a message with XSalsa20, but does not provide any ciphertext guarantees
  about the plaintext.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>  The message to encrypt
  <info>string</info>  <strong>$nonce</strong>    A number that must be only used once, per message. 24 bytes long. This is a
                    large enough bound to generate randomly (i.e. <strong>random_bytes()</strong>).
  <info>string</info>  <strong>$key</strong>      Encryption key (256-bit).

<comment>Return:</comment>
  <info>string</info>  Encrypted message.


id: sodium_hex2bin
type: function
doc:
<comment>Description:</comment>
  Decodes a hexadecimally encoded binary string
  
  Decodes a hexadecimally encoded binary string.
  
  Like <strong>sodium_bin2hex()</strong>, <strong>sodium_hex2bin()</strong> is resistant to side-channel attacks while <strong>hex2bin()</strong> is
  not.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  Hexadecimal representation of data.
  <info>string</info>  <strong>$ignore</strong>  Optional string argument for characters to ignore.

<comment>Return:</comment>
  <info>string</info>  Returns the binary representation of the given <strong>$string</strong> data.


id: sodium_increment
type: function
doc:
<comment>Description:</comment>
  Increment large number
  
  Treat the string as a little-endian unsigned integer, then increase it by 1. Constant-time.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  String to increment.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.


id: sodium_memcmp
type: function
doc:
<comment>Description:</comment>
  Test for equality in constant-time
  
  Compare two strings in constant-time.
  
  In practice, you almost always want to use <strong>hash_equals()</strong> instead, since it provides the same logic
  but returns a <info>bool</info> instead of an <info>int</info>. However, if you're using the return value of a comparison in
  a calculation that's timing-sensitive, and worried about timing leaks with bool-to-int
  conversions, <strong>sodium_memcmp()</strong> is an ideal replacement.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  String to compare
  <info>string</info>  <strong>$string2</strong>  Other string to compare

<comment>Return:</comment>
  <info>int</info>  Returns <return>0</return> if both strings are equal; <return>-1</return> otherwise.


id: sodium_memzero
type: function
doc:
<comment>Description:</comment>
  Overwrite a string with NUL characters
  
  <strong>sodium_memzero()</strong> zeroes out the string that is passed by reference.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  String.

<comment>Return:</comment>
  <info>void</info>  Nenhum valor é retornado.


id: sodium_pad
type: function
doc:
<comment>Description:</comment>
  Add padding data
  
  Right-pad a string to a desired length. Timing-safe.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      Unpadded string.
  <info>int</info>     <strong>$block_size</strong>  The string will be padded until it is an even multiple of the block size.

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


id: sodium_unpad
type: function
doc:
<comment>Description:</comment>
  Remove padding data
  
  Unpad a padded string. Timing-safe.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      Padded string.
  <info>int</info>     <strong>$block_size</strong>  The block size for padding.

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


id: solr_get_version
type: function
doc:
<comment>Description:</comment>
  Retorna a versão atual da extensão Apache Solr
  
  Essa função retorna uma string com a versão atual da extensão Solr.

<comment>Return:</comment>
  <info>string</info>  Retorna uma string, ou <info>false</info> se falhar.

<comment>See Also:</comment>
   * <strong>SolrUtils::getSolrVersion()</strong>


id: sort
type: function
doc:
<comment>Description:</comment>
  Ordena um array em ordem ascendente
  
  Ordena os valores do <strong>$array</strong> em ordem ascendente, modificando o array.
  
  Se dois elementos são comparados como iguais, eles mantêm sua ordem original. Antes do PHP 8.0.0,
  sua ordem relativa no array ordenado era indefinida.
  
  Esta função
  atribui novas chaves aos elementos do <strong>$array</strong>.
  Ela removerá todas as chaves existentes que possam ter sido atribuídas, em vez
  de apenas reordenar as chaves.
  
  Redefine o ponteiro interno do array para o primeiro elemento.

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  O array de entrada.
  <info>int</info>    <strong>$flags</strong>  O segundo parâmetro opcional <strong>$flags</strong> pode ser usado para modificar o comportamento
                 da ordenação usando estes valores:
                 
                 Flags dos tipos de ordenação: <info>SORT_REGULAR</info> - compara os elementos normalmente; os
                 detalhes são descritos na seção operadores de comparação<info>SORT_NUMERIC</info> - compara os
                 elementos numericamente<info>SORT_STRING</info> - compara os elementos como
                 strings<info>SORT_LOCALE_STRING</info> - compara os elementos como strings, com base na
                 localidade atual. A localidade pode ser alterada usando <strong>setlocale()</strong> <info>SORT_NATURAL</info> -
                 compara os elementos como strings usando "ordenação natural" como <strong>natsort()</strong>
                 <info>SORT_FLAG_CASE</info> - pode ser combinada (usando o operador bit a bit OR) com
                 <info>SORT_STRING</info> ou <info>SORT_NATURAL</info> para ordenar strings sem fazer distinção entre
                 maiúsculas e minúsculas
                 
                 <info>SORT_REGULAR</info> - compara os elementos normalmente; os detalhes são descritos na seção
                 operadores de comparação
                 
                 <info>SORT_NUMERIC</info> - compara os elementos numericamente
                 
                 <info>SORT_STRING</info> - compara os elementos como strings
                 
                 <info>SORT_LOCALE_STRING</info> - compara os elementos como strings, com base na localidade
                 atual. A localidade pode ser alterada usando <strong>setlocale()</strong>
                 
                 <info>SORT_NATURAL</info> - compara os elementos como strings usando "ordenação natural" como
                 <strong>natsort()</strong>
                 
                 <info>SORT_FLAG_CASE</info> - pode ser combinada (usando o operador bit a bit OR) com
                 <info>SORT_STRING</info> ou <info>SORT_NATURAL</info> para ordenar strings sem fazer distinção entre
                 maiúsculas e minúsculas

<comment>Return:</comment>
  <info>true</info>  Sempre retorna <info>true</info>.

<comment>See Also:</comment>
   * <strong>rsort()</strong>
   * Comparação entre as funções de ordenação de array


