# php_manual

id: pg_field_type
type: function
doc:
<comment>Description:</comment>
  Returns the type name for the corresponding field number
    
  
  <strong>pg_field_type()</strong> returns a string containing the base type name of the given <strong>$field</strong> in the given
  <strong>$result</strong> instance.
  
  If the field uses a PostgreSQL domain (rather than a basic type), it is the name of the domain's
  underlying type that is returned, rather than the  name of the domain itself.
  
  This function used to be called <strong>pg_fieldtype()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$field</strong>   Field number, starting from 0.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the base name of the field's type.

<comment>See Also:</comment>
   * <strong>pg_field_prtlen()</strong>
   * <strong>pg_field_name()</strong>
   * <strong>pg_field_type_oid()</strong>


id: pg_field_type_oid
type: function
doc:
<comment>Description:</comment>
  Returns the type ID (OID) for the corresponding field number
    
  
  <strong>pg_field_type_oid()</strong> returns an integer containing the OID of the base type of the given <strong>$field</strong> in
  the given <strong>$result</strong> instance.
  
  You can get more information about the field type by querying PostgreSQL's <return>pg_type</return> system table
  using the OID obtained with this function. The PostgreSQL <strong>format_type()</strong> function will convert a
  type OID into an SQL standard type name.
  
  If the field uses a PostgreSQL domain (rather than a basic type), it is the OID of the domain's
  underlying type that is returned, rather than the OID of the domain itself.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$field</strong>   Field number, starting from 0.

<comment>Return:</comment>
  <info>string|int</info>  The OID of the field's base type.

<comment>See Also:</comment>
   * <strong>pg_field_type()</strong>
   * <strong>pg_field_prtlen()</strong>
   * <strong>pg_field_name()</strong>


id: pg_flush
type: function
doc:
<comment>Description:</comment>
  Flush outbound query data on the connection
  
  <strong>pg_flush()</strong> flushes any outbound query data waiting to be sent on the connection.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

<comment>Return:</comment>
  <info>int|bool</info>  Returns <info>true</info> if the flush was successful or no data was waiting to be flushed, <return>0</return> if part
            of the pending data was flushed but more remains or <info>false</info> on failure.


id: pg_free_result
type: function
doc:
<comment>Description:</comment>
  Free result memory
  
  <strong>pg_free_result()</strong> frees the memory and data associated with the specified <class>PgSql\Result</class> instance.
  
  This function need only be called if memory consumption during script execution is a problem.
  Otherwise, all result memory will  be automatically freed when the script ends.
  
  This function used to be called <strong>pg_freeresult()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).

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

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_query_params()</strong>
   * <strong>pg_execute()</strong>


id: pg_get_notify
type: function
doc:
<comment>Description:</comment>
  Gets SQL NOTIFY message
  
  <strong>pg_get_notify()</strong> gets notifications generated by a <return>NOTIFY</return> SQL command. To receive notifications,
  the <return>LISTEN</return> SQL command must be issued.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>int</info>               <strong>$mode</strong>        An optional parameter that controls how the returned <info>array</info> is
                                 indexed.
                                 <strong>$mode</strong> is a constant and can take the following values:
                                 <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> and <info>PGSQL_BOTH</info>.
                                 Using <info>PGSQL_NUM</info>, the function will return an array with numerical
                                 indices,
                                 using <info>PGSQL_ASSOC</info> it will return only associative indices
                                 while <info>PGSQL_BOTH</info> will return both numerical and associative
                                 indices.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> containing the <return>NOTIFY</return> message name and backend PID. If supported by the
               server, the array also contains the server version and the payload. Otherwise if no
               <return>NOTIFY</return> is waiting, then <info>false</info> is returned.

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


id: pg_get_pid
type: function
doc:
<comment>Description:</comment>
  Gets the backend's process ID
  
  <strong>pg_get_pid()</strong> gets the backend's (database server process) PID. The PID is useful to determine
  whether or not a <return>NOTIFY</return> message received via <strong>pg_get_notify()</strong> is sent from another process or not.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

<comment>Return:</comment>
  <info>int</info>  The backend database process ID.

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


id: pg_get_result
type: function
doc:
<comment>Description:</comment>
  Get asynchronous query result
    
  
  <strong>pg_get_result()</strong> gets an <class>PgSql\Result</class> instance from an asynchronous query executed by
  <strong>pg_send_query()</strong>, <strong>pg_send_query_params()</strong> or <strong>pg_send_execute()</strong>.
  
  <strong>pg_send_query()</strong> and the other asynchronous query functions can send multiple queries to a
  PostgreSQL server and <strong>pg_get_result()</strong> is used to get each query's results, one by one.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

<comment>Return:</comment>
  <info>PgSql\Result|false</info>  An <class>PgSql\Result</class> instance, or <info>false</info> if no more results are available.

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


id: pg_host
type: function
doc:
<comment>Description:</comment>
  Returns the host name associated with the connection
    
  
  <strong>pg_host()</strong> returns the host name of the given PostgreSQL <strong>$connection</strong> instance is connected to.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the name of the host the <strong>$connection</strong> is to, or an empty string on
          error.

<comment>See Also:</comment>
   * <strong>pg_connect()</strong>
   * <strong>pg_pconnect()</strong>


id: pg_insert
type: function
doc:
<comment>Description:</comment>
  Insert array into table
    
  
  <strong>pg_insert()</strong> inserts the values of <strong>$values</strong> into the table specified by <strong>$table_name</strong>.
  
  If <strong>$flags</strong> is specified, <strong>pg_convert()</strong> is applied to <strong>$values</strong> with the specified flags.
  
  By default <strong>pg_insert()</strong> passes raw values. Values must be escaped or the <info>PGSQL_DML_ESCAPE</info> flag must
  be specified in <strong>$flags</strong>. <info>PGSQL_DML_ESCAPE</info> quotes and escapes parameters/identifiers. Therefore,
  table/column names become case sensitive.
  
  Note that neither escape nor prepared query can protect LIKE query, JSON, Array, Regex, etc. These
  parameters should be handled according to their contexts. i.e. Escape/validate values.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$table_name</strong>  Name of the table into which to insert rows.  The table <strong>$table_name</strong>
                                 must at least have as many columns as <strong>$values</strong> has elements.
  <info>array</info>             <strong>$values</strong>      An <info>array</info> whose keys are field names in the table <strong>$table_name</strong>, and
                                 whose values are the values of those fields that are to be
                                 inserted.
  <info>int</info>               <strong>$flags</strong>       Any number of <info>PGSQL_CONV_OPTS</info>, <info>PGSQL_DML_NO_CONV</info>, <info>PGSQL_DML_ESCAPE</info>,
                                 <info>PGSQL_DML_EXEC</info>, <info>PGSQL_DML_ASYNC</info> or <info>PGSQL_DML_STRING</info> combined. If
                                 <info>PGSQL_DML_STRING</info> is part of the <strong>$flags</strong> then query string is
                                 returned. When <info>PGSQL_DML_NO_CONV</info> or <info>PGSQL_DML_ESCAPE</info> is set, it
                                 does not call <strong>pg_convert()</strong> internally.

<comment>Return:</comment>
  <info>PgSql\Result|string|bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.. Or returns a <info>string</info> on
                            success if <info>PGSQL_DML_STRING</info> is passed via <strong>$flags</strong>.

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


id: pg_last_error
type: function
doc:
<comment>Description:</comment>
  Get the last error message string of a connection
  
  <strong>pg_last_error()</strong> returns the last error message for a given <strong>$connection</strong>.
  
  Error messages may be overwritten by internal PostgreSQL (libpq) function calls. It may not return
  an appropriate error message if multiple errors occur inside a PostgreSQL module function.
  
  Use <strong>pg_result_error()</strong>, <strong>pg_result_error_field()</strong>, <strong>pg_result_status()</strong> and <strong>pg_connection_status()</strong> for
  better error handling.
  
  This function used to be called <strong>pg_errormessage()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the last error message on the  given <strong>$connection</strong>.

<comment>See Also:</comment>
   * <strong>pg_result_error()</strong>
   * <strong>pg_result_error_field()</strong>


id: pg_last_notice
type: function
doc:
<comment>Description:</comment>
  Returns the last notice message from PostgreSQL server
    
  
  <strong>pg_last_notice()</strong> returns the last notice message from the PostgreSQL server on the specified
  <strong>$connection</strong>. The PostgreSQL server sends notice messages in several cases, for instance when
  creating a <return>SERIAL</return> column in a table.
  
  With <strong>pg_last_notice()</strong>, you can avoid issuing useless queries by checking whether or not the notice
  is related to your transaction.
  
  Notice message tracking can be set to optional by setting 1 for <return>pgsql.ignore_notice</return> in php.ini.
  
  Notice message logging can be set to optional by setting 0 for <return>pgsql.log_notice</return> in php.ini. Unless
  <return>pgsql.ignore_notice</return> is set to 0, notice message cannot be logged.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>int</info>               <strong>$mode</strong>        One of <info>PGSQL_NOTICE_LAST</info> (to return last notice), <info>PGSQL_NOTICE_ALL</info>
                                 (to return all notices), or <info>PGSQL_NOTICE_CLEAR</info> (to clear notices).

<comment>Return:</comment>
  <info>array|string|bool</info>  A <info>string</info> containing the last notice on the  given <strong>$connection</strong> with
                     <info>PGSQL_NOTICE_LAST</info>, an <info>array</info> with <info>PGSQL_NOTICE_ALL</info>, a <info>bool</info> with
                     <info>PGSQL_NOTICE_CLEAR</info>.

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_last_error()</strong>


id: pg_last_oid
type: function
doc:
<comment>Description:</comment>
  Returns the last row's OID
  
  <strong>pg_last_oid()</strong> is used to retrieve the OID assigned to an inserted row.
  
  OID field became an optional field from PostgreSQL 7.2 and will not be present by default in
  PostgreSQL 8.1. When the OID field is not present in a table, the programmer must use
  <strong>pg_result_status()</strong> to check for successful insertion.
  
  To get the value of a <return>SERIAL</return> field in an inserted row, it is necessary to use the PostgreSQL
  <return>CURRVAL</return> function, naming the sequence whose last value is required.  If the name of the sequence
  is unknown, the <return>pg_get_serial_sequence</return> PostgreSQL 8.0 function is necessary.
  
  PostgreSQL 8.1 has a function <return>LASTVAL</return> that returns the value of the most recently used sequence in
  the session.  This avoids the need for naming the sequence, table or column altogether.
  
  This function used to be called <strong>pg_getlastoid()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).

<comment>Return:</comment>
  <info>string|int|false</info>  An <info>int</info> or <info>string</info> containing the OID assigned to the most recently inserted row
                    in the specified <strong>$connection</strong>, or <info>false</info> on error or no available OID.

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_result_status()</strong>


id: pg_lo_close
type: function
doc:
<comment>Description:</comment>
  Close a large object
  
  <strong>pg_lo_close()</strong> closes a large object.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.
  
  This function used to be called <strong>pg_loclose()</strong>.

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>  An <class>PgSql\Lob</class> instance, returned by <strong>pg_lo_open()</strong>.

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

<comment>See Also:</comment>
   * <strong>pg_lo_open()</strong>
   * <strong>pg_lo_create()</strong>
   * <strong>pg_lo_import()</strong>


id: pg_lo_create
type: function
doc:
<comment>Description:</comment>
  Create a large object
  
  <strong>pg_lo_create()</strong> creates a large object and returns the OID of the large object.  PostgreSQL access
  modes <info>INV_READ</info>, <info>INV_WRITE</info>, and  <info>INV_ARCHIVE</info> are not supported, the object is created always with
  both read and write access. <info>INV_ARCHIVE</info> has been removed from PostgreSQL itself (version 6.3 and
  above).
  
  To use the large object interface, it is necessary to enclose it within a transaction block.
  
  Instead of using the large object interface (which has no access controls and is cumbersome to
  use), try PostgreSQL's bytea column type and <strong>pg_escape_bytea()</strong>.
  
  This function used to be called <strong>pg_locreate()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>mixed</info>             <strong>$object_id</strong>   If an <strong>$object_id</strong> is given the function will try to create a large
                                 object with this id, else a free object id is assigned by the
                                 server. The parameter relies on functionality that first appeared
                                 in PostgreSQL 8.1.

<comment>Return:</comment>
  <info>int</info>  A large object OID,  or <info>false</info> on failure.


id: pg_lo_export
type: function
doc:
<comment>Description:</comment>
  Export a large object to file
  
  <strong>pg_lo_export()</strong> takes a large object in a PostgreSQL database and saves its contents to a file on
  the local filesystem.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.
  
  This function used to be called <strong>pg_loexport()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>int</info>               <strong>$oid</strong>         The OID of the large object in the database.
  <info>string</info>            <strong>$pathname</strong>    The full path and file name of the file in which to write the large
                                 object on the client filesystem.

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

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


id: pg_lo_import
type: function
doc:
<comment>Description:</comment>
  Import a large object from file
  
  <strong>pg_lo_import()</strong> creates a new large object in the database using a file on the filesystem as its
  data source.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.
  
  This function used to be called <strong>pg_loimport()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$pathname</strong>    The full path and file name of the file on the client filesystem
                                 from which to read the large object data.
  <info>mixed</info>             <strong>$object_id</strong>   If an <strong>$object_id</strong> is given the function will try to create a large
                                 object with this id, else a free object id is assigned by the
                                 server. The parameter relies on functionality that first appeared
                                 in PostgreSQL 8.1.

<comment>Return:</comment>
  <info>int</info>  The OID of the newly created large object,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pg_lo_export()</strong>
   * <strong>pg_lo_open()</strong>


id: pg_lo_open
type: function
doc:
<comment>Description:</comment>
  Open a large object
  
  <strong>pg_lo_open()</strong> opens a large object in the database and returns an <class>PgSql\Lob</class> instance so that it can
  be manipulated.
  
  Do not close the database connection before closing the <class>PgSql\Lob</class> instance.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.
  
  This function used to be called <strong>pg_loopen()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>int</info>               <strong>$oid</strong>         The OID of the large object in the database.
  <info>string</info>            <strong>$mode</strong>        Can be either "r" for read-only, "w" for write only or "rw" for
                                 read and  write.

<comment>Return:</comment>
  <info>PgSql\Lob|false</info>  An <class>PgSql\Lob</class> instance,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pg_lo_close()</strong>
   * <strong>pg_lo_create()</strong>


id: pg_lo_read
type: function
doc:
<comment>Description:</comment>
  Read a large object
  
  <strong>pg_lo_read()</strong> reads at most <strong>$length</strong> bytes from a large object and returns it as a <info>string</info>.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.
  
  This function used to be called <strong>pg_loread()</strong>.

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>     An <class>PgSql\Lob</class> instance, returned by <strong>pg_lo_open()</strong>.
  <info>int</info>        <strong>$length</strong>  An optional maximum number of bytes to return.

<comment>Return:</comment>
  <info>string|false</info>  A <info>string</info> containing <strong>$length</strong> bytes from the large object, or <info>false</info> on error.

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


id: pg_lo_read_all
type: function
doc:
<comment>Description:</comment>
  Reads an entire large object and send straight to browser
    
  
  <strong>pg_lo_read_all()</strong> reads a large object and passes it straight through to the browser after sending
  all pending headers. Mainly intended for sending binary data like images or sound.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.
  
  This function used to be called <strong>pg_loreadall()</strong>.

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>  An <class>PgSql\Lob</class> instance, returned by <strong>pg_lo_open()</strong>.

<comment>Return:</comment>
  <info>int</info>  Number of bytes read.

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


id: pg_lo_seek
type: function
doc:
<comment>Description:</comment>
  Seeks position within a large object
    
  
  <strong>pg_lo_seek()</strong> seeks a position within an <class>PgSql\Lob</class> instance.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>     An <class>PgSql\Lob</class> instance, returned by <strong>pg_lo_open()</strong>.
  <info>int</info>        <strong>$offset</strong>  The number of bytes to seek.
  <info>int</info>        <strong>$whence</strong>  One of the constants <info>PGSQL_SEEK_SET</info> (seek from object start),  <info>PGSQL_SEEK_CUR</info>
                      (seek from current position) or <info>PGSQL_SEEK_END</info> (seek from object end) .

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

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


id: pg_lo_tell
type: function
doc:
<comment>Description:</comment>
  Returns current seek position a of large object
    
  
  <strong>pg_lo_tell()</strong> returns the current position (offset from the beginning) of a large object.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>  An <class>PgSql\Lob</class> instance, returned by <strong>pg_lo_open()</strong>.

<comment>Return:</comment>
  <info>int</info>  The current seek offset (in number of bytes) from the beginning of the large object.  If
       there is an error, the return value is negative.

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


id: pg_lo_truncate
type: function
doc:
<comment>Description:</comment>
  Truncates a large object
    
  
  <strong>pg_lo_truncate()</strong> truncates an <class>PgSql\Lob</class> instance.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>   An <class>PgSql\Lob</class> instance, returned by <strong>pg_lo_open()</strong>.
  <info>int</info>        <strong>$size</strong>  The number of bytes to truncate.

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

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


id: pg_lo_unlink
type: function
doc:
<comment>Description:</comment>
  Delete a large object
  
  <strong>pg_lo_unlink()</strong> deletes a large object with the <strong>$oid</strong>. Returns <info>true</info> on success or <info>false</info> on failure.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.
  
  This function used to be called <strong>pg_lounlink()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>int</info>               <strong>$oid</strong>         The OID of the large object in the database.

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

<comment>See Also:</comment>
   * <strong>pg_lo_create()</strong>
   * <strong>pg_lo_import()</strong>


id: pg_lo_write
type: function
doc:
<comment>Description:</comment>
  Write to a large object
  
  <strong>pg_lo_write()</strong> writes data into a large object at the current seek position.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.
  
  This function used to be called <strong>pg_lowrite()</strong>.

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>     An <class>PgSql\Lob</class> instance, returned by <strong>pg_lo_open()</strong>.
  <info>string</info>     <strong>$data</strong>    The data to be written to the large object.  If <strong>$length</strong> is an <info>int</info> and is less
                      than the length of <strong>$data</strong>, only <strong>$length</strong> bytes will be written.
  <info>int|null</info>   <strong>$length</strong>  An optional maximum number of bytes to write.  Must be greater than zero and
                      no greater than the length of <strong>$data</strong>.  Defaults to the length of <strong>$data</strong>.

<comment>Return:</comment>
  <info>int|false</info>  The number of bytes written to the large object, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>pg_lo_create()</strong>
   * <strong>pg_lo_open()</strong>


id: pg_meta_data
type: function
doc:
<comment>Description:</comment>
  Get meta data for table
    
  
  <strong>pg_meta_data()</strong> returns table definition for <return>table_name</return> as an array.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$table_name</strong>  The name of the table.
  <info>bool</info>              <strong>$extended</strong>    Flag for returning extended meta data. Default to <info>false</info>.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> of the table definition,  or <info>false</info> on failure.

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


id: pg_num_fields
type: function
doc:
<comment>Description:</comment>
  Returns the number of fields in a result
  
  <strong>pg_num_fields()</strong> returns the number of fields (columns) in the <class>PgSql\Result</class> instance.
  
  This function used to be called <strong>pg_numfields()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).

<comment>Return:</comment>
  <info>int</info>  The number of fields (columns) in the result. On error, -1 is returned.

<comment>See Also:</comment>
   * <strong>pg_num_rows()</strong>
   * <strong>pg_affected_rows()</strong>


id: pg_num_rows
type: function
doc:
<comment>Description:</comment>
  Returns the number of rows in a result
  
  <strong>pg_num_rows()</strong> will return the number of rows in an <class>PgSql\Result</class> instance.
  
  This function used to be called <strong>pg_numrows()</strong>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).

<comment>Return:</comment>
  <info>int</info>  The number of rows in the result. On error, <return>-1</return> is returned.

<comment>See Also:</comment>
   * <strong>pg_num_fields()</strong>
   * <strong>pg_affected_rows()</strong>


id: pg_options
type: function
doc:
<comment>Description:</comment>
  Get the options associated with the connection
  
  <strong>pg_options()</strong> will return a string containing the options specified on the given PostgreSQL
  <strong>$connection</strong> instance.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the <strong>$connection</strong> options.

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


id: pg_parameter_status
type: function
doc:
<comment>Description:</comment>
  Looks up a current parameter setting of the server
  
  Looks up a current parameter setting of the server.
  
  Certain parameter values are reported by the server automatically at  connection startup or
  whenever their values change. <strong>pg_parameter_status()</strong> can be  used to interrogate these settings. It
  returns the current value of a  parameter if known, or <info>false</info> if the parameter is not known.
  
  Parameters reported as of PostgreSQL 8.0 include <return>server_version</return>,  <return>server_encoding</return>,
  <return>client_encoding</return>,  <return>is_superuser</return>, <return>session_authorization</return>,  <return>DateStyle</return>, <return>TimeZone</return>, and
  <return>integer_datetimes</return>. (<return>server_encoding</return>, <return>TimeZone</return>, and  <return>integer_datetimes</return> were not reported by
  releases before 8.0.) Note that  <return>server_version</return>, <return>server_encoding</return> and <return>integer_datetimes</return>  cannot
  change after PostgreSQL startup.
  
  PostgreSQL 7.3 or lower servers do not report parameter settings, <strong>pg_parameter_status()</strong> includes
  logic to obtain values for <return>server_version</return> and  <return>client_encoding</return> anyway. Applications are encouraged
  to use <strong>pg_parameter_status()</strong> rather than ad  hoc code to determine these values.
  
  On a pre-7.4 PostgreSQL server, changing <return>client_encoding</return> via <return>SET</return> after connection startup will
  not be reflected by <strong>pg_parameter_status()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$param_name</strong>  Possible <strong>$param_name</strong> values include <return>server_version</return>,
                                 <return>server_encoding</return>, <return>client_encoding</return>,  <return>is_superuser</return>,
                                 <return>session_authorization</return>,  <return>DateStyle</return>, <return>TimeZone</return>, and
                                 <return>integer_datetimes</return>.  Note that this value is case-sensitive.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the value of the parameter, <info>false</info> on failure or invalid <strong>$param_name</strong>.


id: pg_pconnect
type: function
doc:
<comment>Description:</comment>
  Open a persistent PostgreSQL connection
  
  <strong>pg_pconnect()</strong> opens a connection to a PostgreSQL database. It returns an <class>PgSql\Connection</class> instance
  that is needed by other PostgreSQL functions.
  
  If a second call is made to <strong>pg_pconnect()</strong> with the same <strong>$connection_string</strong> as an existing
  connection, the existing connection will be returned unless you pass <info>PGSQL_CONNECT_FORCE_NEW</info> as
  <strong>$flags</strong>.
  
  To enable persistent connection, the pgsql.allow_persistent php.ini directive must be set to "On"
  (which is the default). The maximum number of persistent connection can be defined with the
  pgsql.max_persistent php.ini directive (defaults to -1 for no limit). The total number of
  connections can be set with the pgsql.max_links  php.ini directive.
  
  <strong>pg_close()</strong> will not close persistent links generated by <strong>pg_pconnect()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$connection_string</strong>  The <strong>$connection_string</strong> can be empty to use all default parameters, or
                              it  can contain one or more parameter settings separated by
                              whitespace.  Each parameter setting is in the form <return>keyword = value</return>.
                              Spaces around  the equal sign are optional. To write an empty value or
                              a value  containing spaces, surround it with single quotes, e.g.,
                              <return>keyword =  'a value'</return>. Single quotes and backslashes within the value
                              must be  escaped with a backslash, i.e., \' and \\.
                              
                              The currently recognized parameter keywords are: <strong>$host</strong>, <strong>$hostaddr</strong>,
                              <strong>$port</strong>, <strong>$dbname</strong>, <strong>$user</strong>, <strong>$password</strong>, <strong>$connect_timeout</strong>, <strong>$options</strong>, <strong>$tty</strong>
                              (ignored), <strong>$sslmode</strong>, <strong>$requiressl</strong> (deprecated in favor of <strong>$sslmode</strong>),
                              and <strong>$service</strong>.  Which of these arguments exist depends on your
                              PostgreSQL version.
  <info>int</info>     <strong>$flags</strong>              If <info>PGSQL_CONNECT_FORCE_NEW</info> is passed, then a new connection is
                              created, even if the <strong>$connection_string</strong> is identical to an existing
                              connection.

<comment>Return:</comment>
  <info>PgSql\Connection|false</info>  Returns an <class>PgSql\Connection</class> instance on success,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pg_connect()</strong>
   * 
     Persistent Database Connections


id: pg_ping
type: function
doc:
<comment>Description:</comment>
  Ping database connection
  
  <strong>pg_ping()</strong> pings a database connection and tries to reconnect it if it is broken.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

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

<comment>See Also:</comment>
   * <strong>pg_connection_status()</strong>
   * <strong>pg_connection_reset()</strong>


id: pg_port
type: function
doc:
<comment>Description:</comment>
  Return the port number associated with the connection
    
  
  <strong>pg_port()</strong> returns the port number that the given PostgreSQL <strong>$connection</strong> instance is connected to.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the port number of the database server the <strong>$connection</strong> is to,  or
          empty string on error.


id: pg_prepare
type: function
doc:
<comment>Description:</comment>
  Submits a request to create a prepared statement with the 
    given parameters, and waits for completion
  
  <strong>pg_prepare()</strong> creates a prepared statement for later execution with  <strong>pg_execute()</strong> or
  <strong>pg_send_execute()</strong>.  This feature allows commands that will be used repeatedly to  be parsed and
  planned just once, rather than each time they are executed.  <strong>pg_prepare()</strong> is supported only
  against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.
  
  The function creates a prepared statement named <strong>$stmtname</strong> from the <strong>$query</strong>  string, which must
  contain a single SQL command. <strong>$stmtname</strong> may be "" to  create an unnamed statement, in which case
  any pre-existing unnamed  statement is automatically replaced; otherwise it is an error if the
  statement name is already defined in the current session. If any parameters  are used, they are
  referred to in the <strong>$query</strong> as $1, $2, etc.
  
  Prepared statements for use with <strong>pg_prepare()</strong> can also be created by  executing SQL <return>PREPARE</return>
  statements. (But <strong>pg_prepare()</strong> is more flexible since it  does not require parameter types to be
  pre-specified.) Also, although there  is no PHP function for deleting a prepared statement, the
  SQL <return>DEALLOCATE</return> statement can be used for that purpose.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$stmtname</strong>    The name to give the prepared statement.  Must be unique
                                 per-connection.  If "" is specified, then an unnamed statement is
                                 created, overwriting any previously defined unnamed statement.
  <info>string</info>            <strong>$query</strong>       The parameterized SQL statement.  Must contain only a single
                                 statement. (multiple statements separated by semi-colons are not
                                 allowed.)  If any parameters  are used, they are referred to as $1,
                                 $2, etc.

<comment>Return:</comment>
  <info>PgSql\Result|false</info>  An <class>PgSql\Result</class> instance on success,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pg_execute()</strong>
   * <strong>pg_send_execute()</strong>


id: pg_put_line
type: function
doc:
<comment>Description:</comment>
  Send a NULL-terminated string to PostgreSQL backend
  
  <strong>pg_put_line()</strong> sends a NULL-terminated string to the PostgreSQL backend server.  This is needed in
  conjunction with PostgreSQL's <return>COPY FROM</return> command.
  
  <return>COPY</return> is a high-speed data loading interface supported by PostgreSQL.  Data is passed in without
  being parsed,  and in a single transaction.
  
  An alternative to using raw <strong>pg_put_line()</strong> commands is to use <strong>pg_copy_from()</strong>.  This is a far
  simpler  interface.
  
  The application must explicitly send the two characters "\." on the last line to indicate to the
  backend that it has finished sending its data, before issuing <strong>pg_end_copy()</strong>.
  
  Use of the <strong>pg_put_line()</strong> causes most large object operations, including <strong>pg_lo_read()</strong> and
  <strong>pg_lo_tell()</strong>, to subsequently fail. You can use <strong>pg_copy_from()</strong> and <strong>pg_copy_to()</strong> instead.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$data</strong>        A line of text to be sent directly to the PostgreSQL backend.  A
                                 <return>NULL</return> terminator is added automatically.

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

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


id: pg_query
type: function
doc:
<comment>Description:</comment>
  Execute a query
  
  <strong>pg_query()</strong> executes the <strong>$query</strong> on the specified database <strong>$connection</strong>. <strong>pg_query_params()</strong> should be
  preferred in most cases.
  
  If an error occurs, and <info>false</info> is returned, details of the error can be retrieved using the
  <strong>pg_last_error()</strong> function if the connection is valid.
  
   Although <strong>$connection</strong> can be omitted, it is not recommended, since it can be the cause of hard to
  find bugs in scripts.
  
  Although <strong>$connection</strong> can be omitted, it is not recommended, since it can be the cause of hard to
  find bugs in scripts.
  
  This function used to be called <strong>pg_exec()</strong>. <strong>pg_exec()</strong> is still available for compatibility reasons,
  but users are encouraged to use the newer name.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$query</strong>       The SQL statement or statements to be executed. When multiple
                                 statements are passed to the function, they are automatically
                                 executed as one transaction, unless there are explicit BEGIN/COMMIT
                                 commands included in the query string. However, using multiple
                                 transactions in one function call is not recommended.
                                 
                                 String interpolation of user-supplied data is extremely dangerous
                                 and is likely to lead to SQL injection vulnerabilities. In most
                                 cases <strong>pg_query_params()</strong> should be preferred, passing user-supplied
                                 values as parameters rather than substituting them into the query
                                 string.
                                 
                                 Any user-supplied data substituted directly into a query string
                                 should be properly escaped.

<comment>Return:</comment>
  <info>PgSql\Result|false</info>  An <class>PgSql\Result</class> instance on success,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>pg_connect()</strong>
   * <strong>pg_pconnect()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_num_rows()</strong>
   * <strong>pg_affected_rows()</strong>


id: pg_query_params
type: function
doc:
<comment>Description:</comment>
  Submits a command to the server and waits for the result, with the ability to pass parameters
  separately from the SQL command text
  
  Submits a command to the server and waits for the result, with the ability  to pass parameters
  separately from the SQL command text.
  
  <strong>pg_query_params()</strong> is like <strong>pg_query()</strong>,  but offers additional functionality: parameter  values can
  be specified separately from the command string proper.  <strong>pg_query_params()</strong> is supported only
  against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.
  
  If parameters are used, they are referred to in the <strong>$query</strong> string as $1, $2, etc. The same
  parameter may appear more than once in the <strong>$query</strong>; the same value will be used in that case.
  <strong>$params</strong> specifies the actual values of the parameters. A <info>null</info> value in this array means the
  corresponding parameter is SQL <return>NULL</return>.
  
  The primary advantage of <strong>pg_query_params()</strong> over <strong>pg_query()</strong>  is that parameter values  may be
  separated from the <strong>$query</strong> string, thus avoiding the need for tedious  and error-prone quoting and
  escaping. Unlike <strong>pg_query()</strong>,  <strong>pg_query_params()</strong> allows at  most one SQL command in the given
  string. (There can be semicolons in it,  but not more than one nonempty command.)

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$query</strong>       The parameterized SQL statement.  Must contain only a single
                                 statement. (multiple statements separated by semi-colons are not
                                 allowed.)  If any parameters  are used, they are referred to as $1,
                                 $2, etc.
                                 
                                 User-supplied values should always be passed as parameters, not
                                 interpolated into the query string, where they form possible  SQL
                                 injection attack vectors and introduce bugs when handling data
                                 containing quotes. If for some reason you cannot use a parameter,
                                 ensure that interpolated values are properly escaped.
  <info>array</info>             <strong>$params</strong>      An array of parameter values to substitute for the $1, $2, etc.
                                 placeholders in the original prepared query string.  The number of
                                 elements in the array must match the number of placeholders.
                                 
                                 Values intended for <return>bytea</return> fields are not supported as parameters.
                                 Use <strong>pg_escape_bytea()</strong> instead, or use the large object functions.

<comment>Return:</comment>
  <info>PgSql\Result|false</info>  An <class>PgSql\Result</class> instance on success,  or <info>false</info> on failure.

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


id: pg_result_error
type: function
doc:
<comment>Description:</comment>
  Get error message associated with result
    
  
  <strong>pg_result_error()</strong> returns any error message associated with the <strong>$result</strong> instance. Therefore, the
  user has a better chance of getting the correct error message than with <strong>pg_last_error()</strong>.
  
  The function <strong>pg_result_error_field()</strong> can give much greater detail on result errors than
  <strong>pg_result_error()</strong>.
  
  Because <strong>pg_query()</strong> returns <info>false</info> if the query fails, you must use <strong>pg_send_query()</strong> and
  <strong>pg_get_result()</strong> to get the result handle.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).

<comment>Return:</comment>
  <info>string|false</info>  Returns a <info>string</info>. Returns empty string if there is no error. If there is an error
                associated with the <strong>$result</strong> parameter, returns <info>false</info>.

<comment>See Also:</comment>
   * <strong>pg_result_error_field()</strong>
   * <strong>pg_query()</strong>
   * <strong>pg_send_query()</strong>
   * <strong>pg_get_result()</strong>
   * <strong>pg_last_error()</strong>
   * <strong>pg_last_notice()</strong>


id: pg_result_error_field
type: function
doc:
<comment>Description:</comment>
  Returns an individual field of an error report
  
  <strong>pg_result_error_field()</strong> returns one of the detailed error message fields associated with <strong>$result</strong>
  instance. It is only available against a PostgreSQL 7.4 or above server.  The error field is
  specified by the <strong>$field_code</strong>.
  
  Because <strong>pg_query()</strong> and <strong>pg_query_params()</strong> return <info>false</info> if the query fails, you must use
  <strong>pg_send_query()</strong> and <strong>pg_get_result()</strong> to get the result handle.
  
  If you need to get additional error information from failed <strong>pg_query()</strong> queries,   use
  <strong>pg_set_error_verbosity()</strong> and <strong>pg_last_error()</strong> and then parse the result.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>      An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                             <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$field_code</strong>  Possible <strong>$field_code</strong> values are: <info>PGSQL_DIAG_SEVERITY</info>,
                             <info>PGSQL_DIAG_SQLSTATE</info>, <info>PGSQL_DIAG_MESSAGE_PRIMARY</info>,
                             <info>PGSQL_DIAG_MESSAGE_DETAIL</info>, <info>PGSQL_DIAG_MESSAGE_HINT</info>,
                             <info>PGSQL_DIAG_STATEMENT_POSITION</info>, <info>PGSQL_DIAG_INTERNAL_POSITION</info> (PostgreSQL
                             8.0+ only), <info>PGSQL_DIAG_INTERNAL_QUERY</info> (PostgreSQL 8.0+ only),
                             <info>PGSQL_DIAG_CONTEXT</info>, <info>PGSQL_DIAG_SOURCE_FILE</info>, <info>PGSQL_DIAG_SOURCE_LINE</info> or
                             <info>PGSQL_DIAG_SOURCE_FUNCTION</info>.

<comment>Return:</comment>
  <info>string|false|null</info>  A <info>string</info> containing the contents of the error field, <info>null</info> if the field does not
                     exist or <info>false</info> on failure.

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


id: pg_result_seek
type: function
doc:
<comment>Description:</comment>
  Set internal row offset in result instance
  
  <strong>pg_result_seek()</strong> sets the internal row offset in the <strong>$result</strong> instance.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$row</strong>     Row to move the internal offset to in the <class>PgSql\Result</class> instance. Rows are
                         numbered starting from zero.

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

<comment>See Also:</comment>
   * <strong>pg_fetch_row()</strong>
   * <strong>pg_fetch_assoc()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_result_status
type: function
doc:
<comment>Description:</comment>
  Get status of query result
    
  
  <strong>pg_result_status()</strong> returns the status of the <class>PgSql\Result</class> instance, or the PostgreSQL command
  completion tag associated with the result

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  An <class>PgSql\Result</class> instance, returned by <strong>pg_query()</strong>,
                         <strong>pg_query_params()</strong> or <strong>pg_execute()</strong>(among others).
  <info>int</info>           <strong>$mode</strong>    Either <info>PGSQL_STATUS_LONG</info> to return the numeric status  of the <strong>$result</strong>, or
                         <info>PGSQL_STATUS_STRING</info>  to return the command tag of the <strong>$result</strong>. If not
                         specified, <info>PGSQL_STATUS_LONG</info> is the default.

<comment>Return:</comment>
  <info>string|int</info>  Possible return values are <info>PGSQL_EMPTY_QUERY</info>, <info>PGSQL_COMMAND_OK</info>, <info>PGSQL_TUPLES_OK</info>,
              <info>PGSQL_COPY_OUT</info>, <info>PGSQL_COPY_IN</info>, <info>PGSQL_BAD_RESPONSE</info>, <info>PGSQL_NONFATAL_ERROR</info> and
              <info>PGSQL_FATAL_ERROR</info> if <info>PGSQL_STATUS_LONG</info> is specified.  Otherwise, a <info>string</info> containing
              the PostgreSQL command tag is returned.

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


id: pg_select
type: function
doc:
<comment>Description:</comment>
  Select records
    
  
  <strong>pg_select()</strong> selects records specified by <strong>$conditions</strong> which has <return>field=&gt;value</return>. For a successful
  query, it returns an array containing all records and fields that match the condition specified by
  <strong>$conditions</strong>.
  
  If <strong>$flags</strong> is set, <strong>pg_convert()</strong> is applied to <strong>$conditions</strong> with the specified flags.
  
  If <strong>$mode</strong> is set, the return value will be in the form of an array with <info>PGSQL_NUM</info>, an associative
  array with <info>PGSQL_ASSOC</info> (default) or both with <info>PGSQL_BOTH</info>.
  
  By default <strong>pg_select()</strong> passes raw values. Values must be escaped or PGSQL_DML_ESCAPE option must
  be specified. PGSQL_DML_ESCAPE quotes and escapes parameters/identifiers. Therefore, table/column
  names became case sensitive.
  
  Note that neither escape nor prepared query can protect LIKE query, JSON, Array, Regex, etc. These
  parameters should be handled according to their contexts. i.e. Escape/validate values.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$table_name</strong>  Name of the table from which to select rows.
  <info>array</info>             <strong>$conditions</strong>  An <info>array</info> whose keys are field names in the table <strong>$table_name</strong>, and
                                 whose values are the conditions that a row must meet to be
                                 retrieved.
  <info>int</info>               <strong>$flags</strong>       Any number of <info>PGSQL_CONV_FORCE_NULL</info>, <info>PGSQL_DML_NO_CONV</info>,
                                 <info>PGSQL_DML_ESCAPE</info>, <info>PGSQL_DML_EXEC</info>, <info>PGSQL_DML_ASYNC</info> or
                                 <info>PGSQL_DML_STRING</info> combined. If <info>PGSQL_DML_STRING</info> is part of the
                                 <strong>$flags</strong> then the query string is returned. When <info>PGSQL_DML_NO_CONV</info> or
                                 <info>PGSQL_DML_ESCAPE</info> is set, it does not call <strong>pg_convert()</strong> internally.
  <info>int</info>               <strong>$mode</strong>        Any number of <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> or <info>PGSQL_BOTH</info> If <info>PGSQL_ASSOC</info>
                                 is set the return value will be an associative <info>array</info>, with
                                 <info>PGSQL_NUM</info> the return value will be an <info>array</info>, and with <info>PGSQL_BOTH</info>
                                 the return value will be both an associative and numerically
                                 indexed <info>array</info>.

<comment>Return:</comment>
  <info>array|string|false</info>  Returns <info>string</info> if <info>PGSQL_DML_STRING</info> is passed via <strong>$flags</strong>, otherwise it returns
                      an <info>array</info> on success,  or <info>false</info> on failure.

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


id: pg_send_execute
type: function
doc:
<comment>Description:</comment>
  Sends a request to execute a prepared statement with given parameters, without waiting for the
  result(s)
  
  Sends a request to execute a prepared statement with given parameters,  without waiting for the
  result(s).
  
  This is similar to <strong>pg_send_query_params()</strong>, but the command to be executed is specified  by naming
  a previously-prepared statement, instead of giving a query string. The  function's parameters are
  handled identically to <strong>pg_execute()</strong>.  Like <strong>pg_execute()</strong>, it will not work on pre-7.4 versions of
  PostgreSQL.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>      An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$statement_name</strong>  The name of the prepared statement to execute.  If "" is
                                     specified, then the unnamed statement is executed.  The name
                                     must have been previously prepared using <strong>pg_prepare()</strong>,
                                     <strong>pg_send_prepare()</strong> or a <return>PREPARE</return> SQL command.
  <info>array</info>             <strong>$params</strong>          An array of parameter values to substitute for the $1, $2, etc.
                                     placeholders in the original prepared query string.  The number
                                     of elements in the array must match the number of placeholders.

<comment>Return:</comment>
  <info>int|bool</info>  Returns <info>true</info> on success, <info>false</info> or <return>0</return> on failure.  Use <strong>pg_get_result()</strong> to determine the
            query result.

<comment>See Also:</comment>
   * <strong>pg_prepare()</strong>
   * <strong>pg_send_prepare()</strong>
   * <strong>pg_execute()</strong>


id: pg_send_prepare
type: function
doc:
<comment>Description:</comment>
  Sends a request to create a prepared statement with the given parameters, without waiting for
  completion
  
  Sends a request to create a prepared statement with the given parameters,  without waiting for
  completion.
  
  This is an asynchronous version of <strong>pg_prepare()</strong>: it returns <info>true</info> if it was able to  dispatch the
  request, and <info>false</info> if not. After a successful call, call  <strong>pg_get_result()</strong> to determine whether the
  server successfully created the  prepared statement. The function's parameters are handled
  identically to  <strong>pg_prepare()</strong>. Like <strong>pg_prepare()</strong>, it will not work  on pre-7.4 versions of
  PostgreSQL.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>      An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$statement_name</strong>  The name to give the prepared statement.  Must be unique
                                     per-connection.  If "" is specified, then an unnamed statement
                                     is created, overwriting any previously defined unnamed
                                     statement.
  <info>string</info>            <strong>$query</strong>           The parameterized SQL statement.  Must contain only a single
                                     statement. (multiple statements separated by semi-colons are
                                     not allowed.)  If any parameters  are used, they are referred
                                     to as $1, $2, etc.

<comment>Return:</comment>
  <info>int|bool</info>  Returns <info>true</info> on success, <info>false</info> or <return>0</return> on failure.  Use <strong>pg_get_result()</strong> to determine the
            query result.

<comment>See Also:</comment>
   * <strong>pg_connect()</strong>
   * <strong>pg_pconnect()</strong>
   * <strong>pg_execute()</strong>
   * <strong>pg_send_execute()</strong>
   * <strong>pg_send_query_params()</strong>


id: pg_send_query
type: function
doc:
<comment>Description:</comment>
  Sends asynchronous query
    
  
  <strong>pg_send_query()</strong> sends a query or queries asynchronously to the <strong>$connection</strong>. Unlike <strong>pg_query()</strong>, it
  can send multiple queries at once to PostgreSQL and get the results one by one using
  <strong>pg_get_result()</strong>.
  
  Script execution is not blocked while the queries are executing. Use <strong>pg_connection_busy()</strong> to check
  if the connection is busy (i.e. the query is executing). Queries may be cancelled using
  <strong>pg_cancel_query()</strong>.
  
  Although the user can send multiple queries at once, multiple queries cannot be sent over a busy
  connection. If a query is sent while the connection is busy, it waits until the last query is
  finished and discards all its results.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$query</strong>       The SQL statement or statements to be executed.
                                 
                                 Data inside the query should be properly escaped.

<comment>Return:</comment>
  <info>int|bool</info>  Returns <info>true</info> on success, <info>false</info> or <return>0</return> on failure.  Use <strong>pg_get_result()</strong> to determine the
            query result.

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_cancel_query()</strong>
   * <strong>pg_get_result()</strong>
   * <strong>pg_connection_busy()</strong>


id: pg_send_query_params
type: function
doc:
<comment>Description:</comment>
  Submits a command and separate parameters to the server without waiting for the result(s)
  
  Submits a command and separate parameters to the server without  waiting for the result(s).
  
  This is equivalent to <strong>pg_send_query()</strong> except that query  parameters can be specified separately
  from the  <strong>$query</strong> string. The function's parameters are  handled identically to <strong>pg_query_params()</strong>.
  Like  <strong>pg_query_params()</strong>, it will not work on pre-7.4 PostgreSQL  connections, and it allows only
  one command in the query string.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$query</strong>       The parameterized SQL statement.  Must contain only a single
                                 statement. (multiple statements separated by semi-colons are not
                                 allowed.)  If any parameters  are used, they are referred to as $1,
                                 $2, etc.
  <info>array</info>             <strong>$params</strong>      An array of parameter values to substitute for the $1, $2, etc.
                                 placeholders in the original prepared query string.  The number of
                                 elements in the array must match the number of placeholders.

<comment>Return:</comment>
  <info>int|bool</info>  Returns <info>true</info> on success, <info>false</info> or <return>0</return> on failure.  Use <strong>pg_get_result()</strong> to determine the
            query result.

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


id: pg_set_client_encoding
type: function
doc:
<comment>Description:</comment>
  Set the client encoding
    
  
  <strong>pg_set_client_encoding()</strong> sets the client encoding and returns 0 if success or -1 if error.
  
  PostgreSQL will automatically convert data in the backend database encoding into the frontend
  encoding.
  
  The function used to be called <strong>pg_setclientencoding()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$encoding</strong>    The required client encoding.  One of <return>SQL_ASCII</return>, <return>EUC_JP</return>,  <return>EUC_CN</return>,
                                 <return>EUC_KR</return>, <return>EUC_TW</return>,  <return>UNICODE</return>, <return>MULE_INTERNAL</return>, <return>LATINX</return> (X=1...9),  <return>KOI8</return>,
                                 <return>WIN</return>, <return>ALT</return>, <return>SJIS</return>,  <return>BIG5</return> or <return>WIN1250</return>.
                                 
                                 The exact list of available encodings depends on your PostgreSQL
                                 version, so check your PostgreSQL manual for a more specific list.

<comment>Return:</comment>
  <info>int</info>  Returns <return>0</return> on success or <return>-1</return> on error.

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


id: pg_set_error_context_visibility
type: function
doc:
<comment>Description:</comment>
  Determines the visibility of the context's error messages returned by pg_last_error
     and pg_result_error
    
  
  Determines the visibility of the context's error messages returned by <strong>pg_last_error()</strong> and
  <strong>pg_result_error()</strong>

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>int</info>               <strong>$visibility</strong>  The required visibility: <info>PGSQL_SHOW_CONTEXT_NEVER</info>,
                                 <info>PGSQL_SHOW_CONTEXT_ERRORS</info> or <info>PGSQL_SHOW_CONTEXT_ALWAYS</info>.

<comment>Return:</comment>
  <info>int</info>  The previous visibility level: <info>PGSQL_SHOW_CONTEXT_NEVER</info>, <info>PGSQL_SHOW_CONTEXT_ERRORS</info> or
       <info>PGSQL_SHOW_CONTEXT_ALWAYS</info>.

<comment>See Also:</comment>
   * <strong>pg_last_error()</strong>
   * <strong>pg_result_error()</strong>


id: pg_set_error_verbosity
type: function
doc:
<comment>Description:</comment>
  Determines the verbosity of messages returned by pg_last_error 
     and pg_result_error
    
  
  Determines the verbosity of messages returned by <strong>pg_last_error()</strong>  and <strong>pg_result_error()</strong>.
  
  <strong>pg_set_error_verbosity()</strong> sets the verbosity mode, returning the connection's previous  setting. In
  <info>PGSQL_ERRORS_TERSE</info> mode, returned messages include severity, primary text, and  position only;
  this will normally fit on a single line. The default mode (<info>PGSQL_ERRORS_DEFAULT</info>) produces messages
  that include the above plus any detail, hint, or context  fields (these may span multiple lines).
  The <info>PGSQL_ERRORS_VERBOSE</info> mode includes all available  fields. Changing the verbosity does not
  affect the messages available from  already-existing result objects, only subsequently-created
  ones.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>int</info>               <strong>$verbosity</strong>   The required verbosity: <info>PGSQL_ERRORS_TERSE</info>, <info>PGSQL_ERRORS_DEFAULT</info> or
                                 <info>PGSQL_ERRORS_VERBOSE</info>.

<comment>Return:</comment>
  <info>int</info>  The previous verbosity level: <info>PGSQL_ERRORS_TERSE</info>, <info>PGSQL_ERRORS_DEFAULT</info> or
       <info>PGSQL_ERRORS_VERBOSE</info>.

<comment>See Also:</comment>
   * <strong>pg_last_error()</strong>
   * <strong>pg_result_error()</strong>


id: pg_socket
type: function
doc:
<comment>Description:</comment>
  Get a read only handle to the socket underlying a PostgreSQL connection
    
  
  <strong>pg_socket()</strong> returns a read only <info>resource</info> corresponding to the socket underlying the given
  PostgreSQL connection.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

<comment>Return:</comment>
  <info>resource|false</info>  A socket resource on success or <info>false</info> on failure.


id: pg_trace
type: function
doc:
<comment>Description:</comment>
  Enable tracing a PostgreSQL connection
  
  <strong>pg_trace()</strong> enables tracing of the PostgreSQL frontend/backend communication to a file. To fully
  understand the results, one needs to be familiar with the internals of PostgreSQL communication
  protocol.
  
  For those who are not, it can still be useful for tracing errors in queries sent to the server,
  you could do for example grep '^To backend' trace.log and see what queries actually were sent to
  the PostgreSQL server. For more information, refer to the PostgreSQL Documentation.

<comment>Param:</comment>
  <info>string</info>                 <strong>$filename</strong>    The full path and file name of the file in which to write the
                                      trace log.  Same as in <strong>fopen()</strong>.
  <info>string</info>                 <strong>$mode</strong>        An optional file access mode, same as for <strong>fopen()</strong>.
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.
  <info>int</info>                    <strong>$trace_mode</strong>  An optional trace mode with the following constants
                                      <info>PGSQL_TRACE_SUPPRESS_TIMESTAMPS</info> and <info>PGSQL_TRACE_REGRESS_MODE</info>

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

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


id: pg_transaction_status
type: function
doc:
<comment>Description:</comment>
  Returns the current in-transaction status of the server
  
  Returns the current in-transaction status of the server.
  
  <strong>pg_transaction_status()</strong> will give incorrect results when using a PostgreSQL 7.3 server that has
  the parameter <return>autocommit</return> set to off.  The server-side autocommit feature has been deprecated and
  does not exist in later server versions.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.

<comment>Return:</comment>
  <info>int</info>  The status can be <info>PGSQL_TRANSACTION_IDLE</info> (currently idle), <info>PGSQL_TRANSACTION_ACTIVE</info> (a
       command is in progress), <info>PGSQL_TRANSACTION_INTRANS</info> (idle, in a valid transaction block), or
       <info>PGSQL_TRANSACTION_INERROR</info> (idle, in a failed transaction block). <info>PGSQL_TRANSACTION_UNKNOWN</info> is
       reported if the connection is bad. <info>PGSQL_TRANSACTION_ACTIVE</info> is reported only when a query has
       been sent to the server and not yet completed.


id: pg_tty
type: function
doc:
<comment>Description:</comment>
  Return the TTY name associated with the connection
    
  
  <strong>pg_tty()</strong> returns the TTY name that server side debugging output is sent to on the given PostgreSQL
  <strong>$connection</strong> instance.
  
  <strong>pg_tty()</strong> is obsolete, since the server no longer pays attention to the TTY setting, but the
  function remains for backwards compatibility.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the debug TTY of the <strong>$connection</strong>.


id: pg_unescape_bytea
type: function
doc:
<comment>Description:</comment>
  Unescape binary for bytea type
    
  
  <strong>pg_unescape_bytea()</strong> unescapes PostgreSQL bytea data values.  It returns the unescaped string,
  possibly containing binary data.
  
  When you <return>SELECT</return> a bytea type, PostgreSQL returns octal byte values prefixed with '\' (e.g. \032).
  Users are supposed to convert back to binary format manually.
  
  This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea values must
  be cast when you enable multi-byte support. i.e. <return>INSERT INTO test_table (image) VALUES
  ('$image_escaped'::bytea);</return> PostgreSQL 7.2.2 or later does not need a cast. The exception is when
  the client and backend character encoding does not match, and there may be multi-byte stream
  error. User must then cast to bytea to avoid this error.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  A <info>string</info> containing PostgreSQL bytea data to be converted into a PHP binary
                   string.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the unescaped data.

<comment>See Also:</comment>
   * <strong>pg_escape_bytea()</strong>
   * <strong>pg_escape_string()</strong>


id: pg_untrace
type: function
doc:
<comment>Description:</comment>
  Disable tracing of a PostgreSQL connection
  
  Stop tracing started by <strong>pg_trace()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

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


id: pg_update
type: function
doc:
<comment>Description:</comment>
  Update table
    
  
  <strong>pg_update()</strong> updates records that matches <strong>$conditions</strong> with <strong>$values</strong>.
  
  If <strong>$flags</strong> is specified, <strong>pg_convert()</strong> is applied to <strong>$values</strong> with the specified flags.
  
  By default <strong>pg_update()</strong> passes raw values. Values must be escaped or the <info>PGSQL_DML_ESCAPE</info> flag must
  be specified in <strong>$flags</strong>. <info>PGSQL_DML_ESCAPE</info> quotes and escapes parameters/identifiers. Therefore,
  table/column names become case sensitive.
  
  Note that neither escape nor prepared query can protect LIKE query, JSON, Array, Regex, etc. These
  parameters should be handled according to their contexts. i.e. Escape/validate values.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
  <info>string</info>            <strong>$table_name</strong>  Name of the table into which to update rows.
  <info>array</info>             <strong>$values</strong>      An <info>array</info> whose keys are field names in the table <strong>$table_name</strong>, and
                                 whose values are what matched rows are to be updated to.
  <info>array</info>             <strong>$conditions</strong>  An <info>array</info> whose keys are field names in the table <strong>$table_name</strong>, and
                                 whose values are the conditions that a row must meet to be updated.
  <info>int</info>               <strong>$flags</strong>       Any number of <info>PGSQL_CONV_FORCE_NULL</info>, <info>PGSQL_DML_NO_CONV</info>,
                                 <info>PGSQL_DML_ESCAPE</info>, <info>PGSQL_DML_EXEC</info>, <info>PGSQL_DML_ASYNC</info> or
                                 <info>PGSQL_DML_STRING</info> combined. If <info>PGSQL_DML_STRING</info> is part of the
                                 <strong>$flags</strong> then query string is returned. When <info>PGSQL_DML_NO_CONV</info> or
                                 <info>PGSQL_DML_ESCAPE</info> is set, it does not call <strong>pg_convert()</strong> internally.

<comment>Return:</comment>
  <info>string|bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.  Returns <info>string</info> if <info>PGSQL_DML_STRING</info> is
               passed via <strong>$flags</strong>.

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


id: pg_version
type: function
doc:
<comment>Description:</comment>
  Returns an array with client, protocol and server version (when available)
    
  
  <strong>pg_version()</strong> returns an array with the client, protocol and server version. Protocol and server
  versions are only available if PHP was compiled with PostgreSQL 7.4 or later.
  
  For more detailed server information, use <strong>pg_parameter_status()</strong>.

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>array</info>  Returns an array with <return>client</return>, <return>protocol</return>  and <return>server</return> keys and values (if available).

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


id: php_ini_loaded_file
type: function
doc:
<comment>Description:</comment>
  Retrieve a path to the loaded php.ini file
  
  Check if a php.ini file is loaded, and retrieve its path.

<comment>Return:</comment>
  <info>string|false</info>  The loaded php.ini path, or <info>false</info> if one is not loaded.

<comment>See Also:</comment>
   * <strong>php_ini_scanned_files()</strong>
   * <strong>phpinfo()</strong>
   * The configuration file


id: php_ini_scanned_files
type: function
doc:
<comment>Description:</comment>
  Return a list of .ini files parsed from the additional ini dir
  
  <strong>php_ini_scanned_files()</strong> returns a comma-separated list of configuration files parsed after
  php.ini. The directories searched are set by a compile time option and, optionally, by an
  environment variable at run time: more information can be found in the installation guide.
  
  The returned configuration files include the full path.

<comment>Return:</comment>
  <info>string|false</info>  Returns a comma-separated string of .ini files on success. Each comma is followed by
                a newline. If the configure directive --with-config-file-scan-dir wasn't set and the
                PHP_INI_SCAN_DIR environment variable isn't set, <info>false</info> is returned.  If it was set
                and the directory was empty, an empty string is returned.  If a file is
                unrecognizable, the file will still make it into the returned string but a PHP error
                will also result.  This PHP error will be seen both at compile time and while using
                <strong>php_ini_scanned_files()</strong>.

<comment>See Also:</comment>
   * <strong>ini_set()</strong>
   * <strong>phpinfo()</strong>
   * <strong>php_ini_loaded_file()</strong>


id: php_sapi_name
type: function
doc:
<comment>Description:</comment>
  Returns the type of interface between web server and PHP
  
  Returns a lowercase string that describes the type of interface (the Server API, SAPI) that PHP is
  using. For example, in CLI PHP this string will be "cli" whereas with Apache it may have several
  different values depending on the exact SAPI used. Possible values are listed below.

<comment>Return:</comment>
  <info>string|false</info>  Returns the interface type, as a lowercase string,  or <info>false</info> on failure.
                
                Although not exhaustive, the possible return values include  <return>apache</return>,
                <return>apache2handler</return>,  <return>cgi</return> (until PHP 5.3),  <return>cgi-fcgi</return>, <return>cli</return>, <return>cli-server</return>, <return>embed</return>, <return>fpm-fcgi</return>,
                <return>litespeed</return>,  <return>phpdbg</return>.

<comment>See Also:</comment>
   * PHP_SAPI


id: php_strip_whitespace
type: function
doc:
<comment>Description:</comment>
  Return source with stripped comments and whitespace
  
  Returns the PHP source code in <strong>$filename</strong> with PHP comments and whitespace removed. This may be
  useful for determining the amount of actual code in your scripts compared with the amount of
  comments. This is similar to using php -w from the commandline.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Path to the PHP file.

<comment>Return:</comment>
  <info>string</info>  The stripped source code will be returned on success, or an empty string on failure.
          
          This function respects the value of the short_open_tag ini directive.


id: php_uname
type: function
doc:
<comment>Description:</comment>
  Returns information about the operating system PHP is running on
  
  <strong>php_uname()</strong> returns a description of the operating system PHP is running on.  This is the same
  string you see at the very top of the <strong>phpinfo()</strong> output.  For the name of just the operating
  system, consider using the <info>PHP_OS</info> constant, but keep in mind this constant will contain the
  operating system PHP was built on.
  
  On some older UNIX platforms, it may not be able to determine the current OS information in which
  case it will revert to displaying the OS PHP was built on.  This will only happen if your uname()
  library call either doesn't exist or doesn't work.

<comment>Param:</comment>
  <info>string</info>  <strong>$mode</strong>  <strong>$mode</strong> is a single character that defines what information is returned: <return>'a'</return>: This is
                 the default. Contains all modes in the sequence <return>"s n r v m"</return>. <return>'s'</return>: Operating system
                 name. eg. <return>FreeBSD</return>. <return>'n'</return>: Host name. eg.  <return>localhost.example.com</return>. <return>'r'</return>: Release name.
                 eg.  <return>5.1.2-RELEASE</return>. <return>'v'</return>: Version information. Varies a lot between operating
                 systems. <return>'m'</return>: Machine type. eg. <return>i386</return>.
                 
                 <return>'a'</return>: This is the default. Contains all modes in the sequence <return>"s n r v m"</return>.
                 
                 <return>'s'</return>: Operating system name. eg. <return>FreeBSD</return>.
                 
                 <return>'n'</return>: Host name. eg.  <return>localhost.example.com</return>.
                 
                 <return>'r'</return>: Release name. eg.  <return>5.1.2-RELEASE</return>.
                 
                 <return>'v'</return>: Version information. Varies a lot between operating systems.
                 
                 <return>'m'</return>: Machine type. eg. <return>i386</return>.

<comment>Return:</comment>
  <info>string</info>  Returns the description, as a string.

<comment>See Also:</comment>
   * <strong>phpversion()</strong>
   * <strong>php_sapi_name()</strong>
   * <strong>phpinfo()</strong>


id: php_user_filter
type: class
doc:
<comment>Description:</comment>
  Children of this class are passed to <strong>stream_filter_register()</strong>. Note that the __construct method is
  not called; instead, php_user_filter::onCreate should be used for initialization.


id: php_user_filter::filter
type: function
doc:
<comment>Description:</comment>
  Called when applying the filter
  
  This method is called whenever data is read from or written to the attached stream (such as with
  <strong>fread()</strong> or <strong>fwrite()</strong>).

<comment>Param:</comment>
  <info>resource</info>  <strong>$in</strong>        <strong>$in</strong> is a resource pointing to a <return>bucket brigade</return> which contains one or more
                       <return>bucket</return> objects containing data to be filtered.
  <info>resource</info>  <strong>$out</strong>       <strong>$out</strong> is a resource pointing to a second <return>bucket brigade</return> into which your
                       modified buckets should be placed.
  <info>int</info>       <strong>$consumed</strong>  <strong>$consumed</strong>, which must always be declared by reference, should be incremented
                       by the length of the data which your filter reads in and alters.  In most
                       cases this means you will increment <strong>$consumed</strong> by <return>$bucket-&gt;datalen</return> for each
                       <return>$bucket</return>.
  <info>bool</info>      <strong>$closing</strong>   If the stream is in the process of closing (and therefore this is the last
                       pass through the filterchain), the <strong>$closing</strong> parameter will be set to <info>true</info>.

<comment>Return:</comment>
  <info>int</info>  The filter method must return one of three values upon completion. Return
       ValueMeaning<info>PSFS_PASS_ON</info> Filter processed successfully with data available in the <strong>$out</strong> <return>bucket
       brigade</return>. <info>PSFS_FEED_ME</info> Filter processed successfully, however no data was available to return.
       More data is required from the stream or prior filter. <info>PSFS_ERR_FATAL</info> (default) The filter
       experienced an unrecoverable error and cannot continue.


id: php_user_filter::onClose
type: function
doc:
<comment>Description:</comment>
  Called when closing the filter
  
  This method is called upon filter shutdown (typically, this is also during stream shutdown), and
  is executed after the <return>flush</return> method is called.  If any resources were allocated or initialized
  during <return>onCreate()</return> this would be the time to destroy or dispose of them.

<comment>Return:</comment>
  <info>void</info>  Return value is ignored.


id: php_user_filter::onCreate
type: function
doc:
<comment>Description:</comment>
  Called when creating the filter
  
  This method is called during instantiation of the filter class object.  If your filter allocates
  or initializes any other resources (such as a buffer), this is the place to do it.
  
  When your filter is first instantiated, and <return>yourfilter-&gt;onCreate()</return> is called, a number of
  properties will be available as shown in the table below.
  
  PropertyContents<return>FilterClass-&gt;filtername</return> A string containing the name the filter was
  instantiated with. Filters may be registered under multiple names or under wildcards. Use this
  property to determine which name was used. <return>FilterClass-&gt;params</return> The contents of the <strong>$params</strong>
  parameter passed to <strong>stream_filter_append()</strong> or <strong>stream_filter_prepend()</strong>. <return>FilterClass-&gt;stream</return> The
  stream resource being filtered. Maybe available only during filter calls when the  <return>closing</return>
  parameter is set to <info>false</info>.

<comment>Return:</comment>
  <info>bool</info>  Your implementation of this method should return <info>false</info> on failure, or <info>true</info> on success.


id: phpcredits
type: function
doc:
<comment>Description:</comment>
  Prints out the credits for PHP
  
  This function prints out the credits listing the PHP developers, modules, etc. It generates the
  appropriate HTML codes to insert the information in a page.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  To generate a custom credits page, you may want to use the <strong>$flags</strong> parameter.
               
               Pre-defined <strong>phpcredits()</strong> flagsnamedescriptionCREDITS_ALL All the credits, equivalent
               to using: <info>CREDITS_DOCS</info> + <info>CREDITS_GENERAL</info> + <info>CREDITS_GROUP</info> + <info>CREDITS_MODULES</info> +
               <info>CREDITS_FULLPAGE</info>. It generates a complete stand-alone HTML page with the appropriate
               tags. CREDITS_DOCSThe credits for the documentation teamCREDITS_FULLPAGE Usually used
               in combination with the other flags.  Indicates that a complete stand-alone HTML page
               needs to be printed including the information indicated by the other flags.
               CREDITS_GENERAL General credits: Language design and concept, PHP authors  and SAPI
               module. CREDITS_GROUPA list of the core developersCREDITS_MODULES A list of the
               extension modules for PHP, and their authors CREDITS_SAPI A list of the server API
               modules for PHP, and their authors

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>phpversion()</strong>
   * <strong>phpinfo()</strong>


id: phpdbg_break_file
type: function
doc:
<comment>Description:</comment>
  Inserts a breakpoint at a line in a file
  
  Insert a breakpoint at the given <strong>$line</strong> in the given <strong>$file</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>  The name of the file.
  <info>int</info>     <strong>$line</strong>  The line number.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>phpdbg_break_function()</strong>
   * <strong>phpdbg_break_method()</strong>
   * <strong>phpdbg_break_next()</strong>
   * <strong>phpdbg_clear()</strong>


id: phpdbg_break_function
type: function
doc:
<comment>Description:</comment>
  Inserts a breakpoint at entry to a function
  
  Insert a breakpoint at the entry to the given <strong>$function</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$function</strong>  The name of the function.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>phpdbg_break_file()</strong>
   * <strong>phpdbg_break_method()</strong>
   * <strong>phpdbg_break_next()</strong>
   * <strong>phpdbg_clear()</strong>


id: phpdbg_break_method
type: function
doc:
<comment>Description:</comment>
  Inserts a breakpoint at entry to a method
  
  Insert a breakpoint at the entry to the given <strong>$method</strong> of the given <strong>$class</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>   The name of the class.
  <info>string</info>  <strong>$method</strong>  The name of the method.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>phpdbg_break_file()</strong>
   * <strong>phpdbg_break_function()</strong>
   * <strong>phpdbg_break_next()</strong>
   * <strong>phpdbg_clear()</strong>


id: phpdbg_break_next
type: function
doc:
<comment>Description:</comment>
  Inserts a breakpoint at the next opcode
  
  Insert a breakpoint at the next opcode.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>phpdbg_break_file()</strong>
   * <strong>phpdbg_break_function()</strong>
   * <strong>phpdbg_break_method()</strong>
   * <strong>phpdbg_clear()</strong>


id: phpdbg_clear
type: function
doc:
<comment>Description:</comment>
  Clears all breakpoints
  
  Clear all breakpoints that have been set, either via one of the <strong>phpdbg_break_*()</strong> functions or
  interactively in the console.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<comment>See Also:</comment>
   * <strong>phpdbg_break_file()</strong>
   * <strong>phpdbg_break_function()</strong>
   * <strong>phpdbg_break_method()</strong>
   * <strong>phpdbg_break_next()</strong>


id: phpdbg_color
type: function
doc:
<comment>Description:</comment>
  Sets the color of certain elements
  
  Set the <strong>$color</strong> of the given <strong>$element</strong>.

<comment>Param:</comment>
  <info>int</info>     <strong>$element</strong>  One of the <info>PHPDBG_COLOR_*</info> constants.
  <info>string</info>  <strong>$color</strong>    The name of the color. One of <return>white</return>, <return>red</return>, <return>green</return>, <return>yellow</return>, <return>blue</return>, <return>purple</return>, <return>cyan</return> or
                    <return>black</return>, optionally with either a trailing <return>-bold</return> or <return>-underline</return>, for instance,
                    <return>white-bold</return> or <return>green-underline</return>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

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


id: phpdbg_end_oplog
type: function
doc:
<comment>Description:</comment>
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  

<comment>Return:</comment>
  <info>array|null</info>  


id: phpdbg_exec
type: function
doc:
<comment>Description:</comment>
  Attempts to set the execution context
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$context</strong>  

<comment>Return:</comment>
  <info>string|bool</info>  If the execution context was set previously it is returned. If the execution context
               was not set previously <info>true</info> is returned. If the request to set the context fails,
               <info>false</info> is returned, and an <info>E_WARNING</info> raised.


id: phpdbg_get_executable
type: function
doc:
<comment>Description:</comment>
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  

<comment>Return:</comment>
  <info>array</info>  


id: phpdbg_prompt
type: function
doc:
<comment>Description:</comment>
  Sets the command prompt
  
  Set the command prompt to the given <strong>$string</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The string to use as command prompt.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

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


id: phpdbg_start_oplog
type: function
doc:
<comment>Description:</comment>
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: phpinfo
type: function
doc:
<comment>Description:</comment>
  Outputs information about PHP's configuration
  
  Outputs a large amount of information about the current state of  PHP.  This includes information
  about PHP compilation options and extensions, the PHP version, server information and environment
  (if compiled as a module), the PHP environment, OS version information, paths, master and local
  values of configuration options, HTTP headers, and the PHP License.
  
  Because every system is setup differently, <strong>phpinfo()</strong> is commonly used to check configuration
  settings and for available predefined variables on a given system.
  
  <strong>phpinfo()</strong> is also a valuable debugging tool as it contains all EGPCS (Environment, GET, POST,
  Cookie, Server) data.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The output may be customized by passing one or more of the following constants
               bitwise values summed together in the optional <strong>$flags</strong> parameter. One can also combine
               the respective constants or bitwise values together with the bitwise or operator.
               
               <strong>phpinfo()</strong> optionsName (constant)ValueDescriptionINFO_GENERAL1 The configuration line,
               php.ini location, build date, Web Server, System and more. INFO_CREDITS2 PHP Credits.
               See also <strong>phpcredits()</strong>. INFO_CONFIGURATION4 Current Local and Master values for PHP
               directives.  See also <strong>ini_get()</strong>. INFO_MODULES8 Loaded modules and their respective
               settings.  See also <strong>get_loaded_extensions()</strong>. INFO_ENVIRONMENT16 Environment Variable
               information that's also available in $_ENV. INFO_VARIABLES32 Shows all  predefined
               variables from EGPCS (Environment, GET, POST, Cookie, Server). INFO_LICENSE64 PHP
               License information.  See also the license FAQ. INFO_ALL-1 Shows all of the above.

<comment>Return:</comment>
  <info>true</info>  Always returns <info>true</info>.

<comment>See Also:</comment>
   * <strong>phpversion()</strong>
   * <strong>phpcredits()</strong>
   * <strong>ini_get()</strong>
   * <strong>ini_set()</strong>
   * <strong>get_loaded_extensions()</strong>
   * Predefined Variables


id: phpversion
type: function
doc:
<comment>Description:</comment>
  Gets the current PHP version
  
  Returns a string containing the version of the currently running PHP parser or extension.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$extension</strong>  An optional extension name.

<comment>Return:</comment>
  <info>string|false</info>  Returns the current PHP version as a <info>string</info>. If a <info>string</info> argument is provided for
                <strong>$extension</strong> parameter, <strong>phpversion()</strong> returns the version of that extension, or <info>false</info>
                if there is no version information associated or the extension isn't enabled.

<comment>See Also:</comment>
   * PHP_VERSION constants
   * <strong>version_compare()</strong>
   * <strong>phpinfo()</strong>
   * <strong>phpcredits()</strong>
   * <strong>zend_version()</strong>


id: pi
type: function
doc:
<comment>Description:</comment>
  Get value of pi
  
  Returns an approximation of pi. Also, you can use the <info>M_PI</info> constant which yields identical results
  to <strong>pi()</strong>.

<comment>Return:</comment>
  <info>float</info>  The value of pi as float.


id: png2wbmp
type: function
doc:
<comment>Description:</comment>
  Convert PNG image file to WBMP image file
  
  Converts a PNG file into a WBMP file.

<comment>Param:</comment>
  <info>string</info>  <strong>$pngname</strong>      Path to PNG file.
  <info>string</info>  <strong>$wbmpname</strong>     Path to destination WBMP file.
  <info>int</info>     <strong>$dest_height</strong>  Destination image height.
  <info>int</info>     <strong>$dest_width</strong>   Destination image width.
  <info>int</info>     <strong>$threshold</strong>    Threshold value, between 0 and 8 (inclusive).

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        However, if libgd fails to output the image, this function returns <info>true</info>.

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


id: popen
type: function
doc:
<comment>Description:</comment>
  Opens process file pointer
  
  Opens a pipe to a process executed by forking the command given by <strong>$command</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>  The command
  <info>string</info>  <strong>$mode</strong>     The mode. Either <return>'r'</return> for reading, or <return>'w'</return> for writing.
                    
                    On Windows, <strong>popen()</strong> defaults to text mode, i.e. any <return>\n</return> characters written to or
                    read from the pipe will be translated to <return>\r\n</return>. If this is not desired, binary
                    mode can be enforced by setting <strong>$mode</strong> to <return>'rb'</return> and <return>'wb'</return>, respectively.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a file pointer identical to that returned by <strong>fopen()</strong>, except that it is
                  unidirectional (may only be used for reading or writing) and must be closed with
                  <strong>pclose()</strong>. This pointer may be used with <strong>fgets()</strong>, <strong>fgetss()</strong>, and <strong>fwrite()</strong>. When the
                  mode is 'r', the returned file pointer equals to the STDOUT of the command, when
                  the mode is 'w', the returned file pointer equals to the STDIN of the command.
                  
                  If an error occurs, returns <info>false</info>.

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


id: pos
type: function
doc:
<comment>Description:</comment>
  Alias of current
  
  This function is an alias of:  <strong>current()</strong>


id: posix_access
type: function
doc:
<comment>Description:</comment>
  Determine accessibility of a file
    
  
  <strong>posix_access()</strong> checks the user's permission of a file.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The name of the file to be tested.
  <info>int</info>     <strong>$flags</strong>     A mask consisting of one or more of <info>POSIX_F_OK</info>, <info>POSIX_R_OK</info>, <info>POSIX_W_OK</info> and
                     <info>POSIX_X_OK</info>.
                     
                     <info>POSIX_R_OK</info>, <info>POSIX_W_OK</info> and <info>POSIX_X_OK</info> request checking whether the file exists
                     and has read, write and execute permissions, respectively. <info>POSIX_F_OK</info> just
                     requests checking for the existence of the file.

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

<comment>See Also:</comment>
   * <strong>posix_get_last_error()</strong>
   * <strong>posix_strerror()</strong>


id: posix_ctermid
type: function
doc:
<comment>Description:</comment>
  Get path name of controlling terminal
  
  Generates a <info>string</info> which is the pathname for the current  controlling terminal for the process.
  On error this will set errno,  which can be checked using <strong>posix_get_last_error()</strong>

<comment>Return:</comment>
  <info>string|false</info>  Upon successful completion, returns <info>string</info> of the pathname to  the current
                controlling terminal.  Otherwise <info>false</info> is returned and errno is set, which can be
                checked with <strong>posix_get_last_error()</strong>.

<comment>See Also:</comment>
   * <strong>posix_ttyname()</strong>
   * <strong>posix_get_last_error()</strong>


id: posix_eaccess
type: function
doc:
<comment>Description:</comment>
  Determine accessibility of a file
    
  
  <strong>posix_eaccess()</strong> checks the effective user's permission of a file

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The name of a file to be tested.
  <info>int</info>     <strong>$flags</strong>     A mask consisting of one or more of <info>POSIX_F_OK</info>, <info>POSIX_R_OK</info>, <info>POSIX_W_OK</info> and
                     <info>POSIX_X_OK</info>.
                     
                     <info>POSIX_R_OK</info>, <info>POSIX_W_OK</info> and <info>POSIX_X_OK</info> request checking whether the file exists
                     and has read, write and execute permissions, respectively. <info>POSIX_F_OK</info> just
                     requests checking for the existence of the file.

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

<comment>See Also:</comment>
   * <strong>posix_get_last_error()</strong>
   * <strong>posix_strerror()</strong>
   * <strong>posix_access()</strong>


id: posix_errno
type: function
doc:
<comment>Description:</comment>
  Alias of posix_get_last_error
  
  This function is an alias of:  <strong>posix_get_last_error()</strong>.


id: posix_fpathconf
type: function
doc:
<comment>Description:</comment>
  Returns the value of a configurable limit
  
  Returns the value of a configurable limit from <strong>$name</strong> for a file descriptor <strong>$resource</strong>

<comment>Param:</comment>
  <info>resource|int</info>  <strong>$file_descriptor</strong>  The file descriptor, which is expected to be either a file
                                  <info>resource</info> or an <info>int</info>. An <info>int</info> will be assumed to be a file descriptor
                                  that can be passed directly to the underlying system call.
  <info>int</info>           <strong>$name</strong>             The name of the configurable limit, one of the following.
                                  <info>POSIX_PC_LINK_MAX</info>, <info>POSIX_PC_MAX_CANON</info> <info>POSIX_PC_MAX_INPUT</info>,
                                  <info>POSIX_PC_NAME_MAX</info> <info>POSIX_PC_PATH_MAX</info>, <info>POSIX_PC_PIPE_BUF</info>
                                  <info>POSIX_PC_CHOWN_RESTRICTED</info>, <info>POSIX_PC_NO_TRUNC</info>
                                  <info>POSIX_PC_ALLOC_SIZE_MIN</info>, <info>POSIX_PC_SYMLINK_MAX</info>

<comment>Return:</comment>
  <info>int|false</info>  Returns the configurable limit or <info>false</info>.

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


id: posix_get_last_error
type: function
doc:
<comment>Description:</comment>
  Retrieve the error number set by the last posix function that failed
  
  Retrieve the error number set by the last posix function that failed. The system error message
  associated with the errno may be checked with <strong>posix_strerror()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the errno (error number) set by the last posix function that failed.  If no errors
       exist, 0 is returned.

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


id: posix_getcwd
type: function
doc:
<comment>Description:</comment>
  Pathname of current directory
  
  Gets the absolute pathname of the script's current working directory. On error, it sets errno
  which can be checked using <strong>posix_get_last_error()</strong>

<comment>Return:</comment>
  <info>string|false</info>  Returns a <info>string</info> of the absolute pathname on success.   On error, returns <info>false</info> and
                sets errno which can be checked with <strong>posix_get_last_error()</strong>.


id: posix_getegid
type: function
doc:
<comment>Description:</comment>
  Return the effective group ID of the current process
  
  Return the numeric effective group ID of the current process.

<comment>Return:</comment>
  <info>int</info>  Returns an <info>int</info> of the effective group ID.

<comment>See Also:</comment>
   * <strong>posix_getgrgid()</strong>
   * <strong>posix_getgid()</strong>
   * <strong>posix_setgid()</strong>


id: posix_geteuid
type: function
doc:
<comment>Description:</comment>
  Return the effective user ID of the current process
  
  Return the numeric effective user ID of the current process. See also <strong>posix_getpwuid()</strong> for
  information on how to convert this into a useable username.

<comment>Return:</comment>
  <info>int</info>  Returns the user id, as an <info>int</info>

<comment>See Also:</comment>
   * <strong>posix_getpwuid()</strong>
   * <strong>posix_getuid()</strong>
   * <strong>posix_setuid()</strong>
   * POSIX man page GETEUID(2)


id: posix_getgid
type: function
doc:
<comment>Description:</comment>
  Return the real group ID of the current process
  
  Return the numeric real group ID of the current process.

<comment>Return:</comment>
  <info>int</info>  Returns the real group id, as an <info>int</info>.

<comment>See Also:</comment>
   * <strong>posix_getgrgid()</strong>
   * <strong>posix_getegid()</strong>
   * <strong>posix_setgid()</strong>
   * POSIX man page GETGID(2)


id: posix_getgrgid
type: function
doc:
<comment>Description:</comment>
  Return info about a group by group id
  
  Gets information about a group provided its id.

<comment>Param:</comment>
  <info>int</info>  <strong>$group_id</strong>  The group id.

<comment>Return:</comment>
  <info>array|false</info>  The array elements returned are: The group information arrayElementDescriptionname
               The name element contains the name of the group. This is a short, usually less than
               16 character "handle" of the group, not the real, full name. passwd The passwd
               element contains the group's password in an encrypted format. Often, for example on a
               system employing "shadow" passwords, an asterisk is returned instead. gid Group ID,
               should be the same as the <strong>$group_id</strong> parameter used when calling the function, and
               hence redundant. members This consists of an <info>array</info> of <info>string</info>'s for all the members in
               the group.  The function returns <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>posix_getegid()</strong>
   * <strong>posix_getgrnam()</strong>
   * <strong>filegroup()</strong>
   * <strong>stat()</strong>
   * POSIX man page GETGRNAM(3)


id: posix_getgrnam
type: function
doc:
<comment>Description:</comment>
  Return info about a group by name
  
  Gets information about a group provided its name.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The name of the group

<comment>Return:</comment>
  <info>array|false</info>  Returns an <info>array</info> on success,  or <info>false</info> on failure. The array elements returned are:
               The group information arrayElementDescriptionname The name element contains the name
               of the group. This is a short, usually less than 16 character "handle" of the group,
               not the real, full name.  This should be the same as the <strong>$name</strong> parameter used when
               calling the function, and hence redundant. passwd The passwd element contains the
               group's password in an encrypted format. Often, for example on a system employing
               "shadow" passwords, an asterisk is returned instead. gid Group ID of the group in
               numeric form. members This consists of an <info>array</info> of <info>string</info>'s for all the members in
               the group.

<comment>See Also:</comment>
   * <strong>posix_getegid()</strong>
   * <strong>posix_getgrgid()</strong>
   * <strong>filegroup()</strong>
   * <strong>stat()</strong>
   * POSIX man page GETGRNAM(3)


id: posix_getgroups
type: function
doc:
<comment>Description:</comment>
  Return the group set of the current process
  
  Gets the group set of the current process.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of integers containing the numeric group ids of the group set of the
               current process,  or <info>false</info> on failure.

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


id: posix_getlogin
type: function
doc:
<comment>Description:</comment>
  Return login name
  
  Returns the login name of the user owning the current process.

<comment>Return:</comment>
  <info>string|false</info>  Returns the login name of the user, as a <info>string</info>,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>posix_getpwnam()</strong>
   * POSIX man page GETLOGIN(3)


id: posix_getpgid
type: function
doc:
<comment>Description:</comment>
  Get process group id for job control
  
  Returns the process group identifier of the process <strong>$process_id</strong> or <info>false</info> on failure.

<comment>Param:</comment>
  <info>int</info>  <strong>$process_id</strong>  The process id.

<comment>Return:</comment>
  <info>int|false</info>  Returns the identifier, as an <info>int</info>.

<comment>See Also:</comment>
   * <strong>posix_getppid()</strong>
   * man page SETPGID(2)


id: posix_getpgrp
type: function
doc:
<comment>Description:</comment>
  Return the current process group identifier
  
  Return the process group identifier of the current process.

<comment>Return:</comment>
  <info>int</info>  Returns the identifier, as an <info>int</info>.

<comment>See Also:</comment>
   * POSIX.1 and the getpgrp(2) manual page on the POSIX system for
     more information on process groups.


id: posix_getpid
type: function
doc:
<comment>Description:</comment>
  Return the current process identifier
  
  Return the process identifier of the current process.

<comment>Return:</comment>
  <info>int</info>  Returns the identifier, as an <info>int</info>.

<comment>See Also:</comment>
   * <strong>posix_kill()</strong>
   * POSIX man page GETPID(2)


id: posix_getppid
type: function
doc:
<comment>Description:</comment>
  Return the parent process identifier
  
  Return the process identifier of the parent process of the current process.

<comment>Return:</comment>
  <info>int</info>  Returns the identifier, as an <info>int</info>.


id: posix_getpwnam
type: function
doc:
<comment>Description:</comment>
  Return info about a user by username
  
  Returns an <info>array</info> of information about the given user.

<comment>Param:</comment>
  <info>string</info>  <strong>$username</strong>  An alphanumeric username.

<comment>Return:</comment>
  <info>array|false</info>  On success an array with the following elements is returned, else  <info>false</info> is returned:
               The user information arrayElementDescriptionname The name element contains the
               username of the user. This is a short, usually less than 16 character "handle" of the
               user, not the real, full name. This should be the same as the <strong>$username</strong> parameter
               used when calling the function, and hence redundant. passwd The passwd element
               contains the user's password in an encrypted format. Often, for example on a system
               employing "shadow" passwords, an asterisk is returned instead. uid User ID of the
               user in numeric form. gid The group ID of the user. Use the function <strong>posix_getgrgid()</strong>
               to resolve the group name and a list of its members. gecos GECOS is an obsolete term
               that refers to the finger information field on a Honeywell batch processing system.
               The field, however, lives on, and its contents have been formalized by POSIX. The
               field contains a comma separated list containing the user's full name, office phone,
               office number, and home phone number. On most systems, only the user's full name is
               available. dir This element contains the absolute path to the home directory of the
               user. shell The shell element contains the absolute path to the executable of the
               user's default shell.

<comment>See Also:</comment>
   * <strong>posix_getpwuid()</strong>
   * POSIX man page GETPWNAM(3)


id: posix_getpwuid
type: function
doc:
<comment>Description:</comment>
  Return info about a user by user id
  
  Returns an <info>array</info> of information about the user  referenced by the given user ID.

<comment>Param:</comment>
  <info>int</info>  <strong>$user_id</strong>  The user identifier.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array with the following elements: The user information
               arrayElementDescriptionname The name element contains the username of the user. This
               is a short, usually less than 16 character "handle" of the user, not the real, full
               name. passwd The passwd element contains the user's password in an encrypted format.
               Often, for example on a system employing "shadow" passwords, an asterisk is returned
               instead. uid User ID, should be the same as the <strong>$user_id</strong> parameter used when calling
               the function, and hence redundant. gid The group ID of the user. Use the function
               <strong>posix_getgrgid()</strong> to resolve the group name and a list of its members. gecos GECOS is
               an obsolete term that refers to the finger information field on a Honeywell batch
               processing system. The field, however, lives on, and its contents have been
               formalized by POSIX. The field contains a comma separated list containing the user's
               full name, office phone, office number, and home phone number. On most systems, only
               the user's full name is available. dir This element contains the absolute path to the
               home directory of the user. shell The shell element contains the absolute path to the
               executable of the user's default shell.  The function returns <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>posix_getpwnam()</strong>
   * POSIX man page GETPWNAM(3)


id: posix_getrlimit
type: function
doc:
<comment>Description:</comment>
  Return info about system resource limits
  
  <strong>posix_getrlimit()</strong> returns an <info>array</info> of information about the current resource's soft and hard
  limits.
  
  Each resource has an associated soft and hard limit.  The soft limit is the value that the kernel
  enforces for the corresponding resource.  The hard limit acts as a ceiling for the soft limit. An
  unprivileged process may only set its soft limit to a value from 0 to the hard limit, and
  irreversibly lower its hard limit.

<comment>Param:</comment>
  <info>int|null</info>  <strong>$resource</strong>  If <info>null</info> all resource limits will be fetched. Otherwise, the only limits of
                       the resource type provided will be returned.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative <info>array</info> of elements for each limit that is defined. Each limit
               has a soft and a hard limit. List of possible limits returnedLimit nameLimit
               descriptioncore The maximum size of the core file.  When 0, not core files are
               created.  When core files are larger than this size, they will be truncated at this
               size. totalmem The maximum size of the memory of the process, in bytes. virtualmem
               The maximum size of the virtual memory for the process, in bytes. data The maximum
               size of the data segment for the process, in bytes. stack The maximum size of the
               process stack, in bytes. rss The maximum number of virtual pages resident in RAM
               maxproc The maximum number of processes that can be created for the real user ID of
               the calling process. memlock The maximum number of bytes of memory that may be locked
               into RAM. cpu The amount of time the process is allowed to use the CPU. filesize The
               maximum size of the data segment for the process, in bytes. openfiles One more than
               the maximum number of open file descriptors.  The function returns <info>false</info> on failure.

<comment>See Also:</comment>
   * man page GETRLIMIT(2)
   * <strong>posix_setrlimit()</strong>


id: posix_getsid
type: function
doc:
<comment>Description:</comment>
  Get the current sid of the process
  
  Return the session id of the process <strong>$process_id</strong>. The session id of a process is the process group
  id of the session leader.

<comment>Param:</comment>
  <info>int</info>  <strong>$process_id</strong>  The process identifier. If set to 0, the current process is assumed.  If an
                    invalid <strong>$process_id</strong> is specified, then <info>false</info> is returned and an error is set
                    which can be checked with <strong>posix_get_last_error()</strong>.

<comment>Return:</comment>
  <info>int|false</info>  Returns the identifier, as an <info>int</info>,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>posix_getpgid()</strong>
   * <strong>posix_setsid()</strong>
   * POSIX man page GETSID(2)


id: posix_getuid
type: function
doc:
<comment>Description:</comment>
  Return the real user ID of the current process
  
  Return the numeric real user ID of the current process.

<comment>Return:</comment>
  <info>int</info>  Returns the user id, as an <info>int</info>

<comment>See Also:</comment>
   * <strong>posix_getpwuid()</strong>
   * POSIX man page GETUID(2)


id: posix_initgroups
type: function
doc:
<comment>Description:</comment>
  Calculate the group access list
  
  Calculates the group access list for the user specified in name.

<comment>Param:</comment>
  <info>string</info>  <strong>$username</strong>  The user to calculate the list for.
  <info>int</info>     <strong>$group_id</strong>  Typically the group number from the password file.

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

<comment>See Also:</comment>
   * The Unix manual page for initgroups(3).


id: posix_isatty
type: function
doc:
<comment>Description:</comment>
  Determine if a file descriptor is an interactive terminal
  
  Determines if the file descriptor <strong>$file_descriptor</strong> refers to a valid terminal type device.

<comment>Param:</comment>
  <info>resource|int</info>  <strong>$file_descriptor</strong>  The file descriptor, which is expected to be either a file
                                  <info>resource</info> or an <info>int</info>. An <info>int</info> will be assumed to be a file descriptor
                                  that can be passed directly to the underlying system call.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$file_descriptor</strong> is an open descriptor connected to a terminal and <info>false</info>
        otherwise.

<comment>See Also:</comment>
   * <strong>posix_ttyname()</strong>
   * <strong>stream_isatty()</strong>


id: posix_kill
type: function
doc:
<comment>Description:</comment>
  Send a signal to a process
  
  Send the signal <strong>$signal</strong> to the process with the process identifier <strong>$process_id</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$process_id</strong>  The process identifier.
  <info>int</info>  <strong>$signal</strong>      One of the PCNTL signals constants.

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

<comment>See Also:</comment>
   * 
     The kill(2) manual page of the POSIX system, which contains additional
     information about negative process identifiers, the special pid 0, the
     special pid -1, and the signal number 0.
    


id: posix_mkfifo
type: function
doc:
<comment>Description:</comment>
  Create a fifo special file (a named pipe)
  
  <strong>posix_mkfifo()</strong> creates a special <return>FIFO</return> file which exists in the file system and acts as a
  bidirectional communication endpoint for processes.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>     Path to the <return>FIFO</return> file.
  <info>int</info>     <strong>$permissions</strong>  The second parameter <strong>$permissions</strong> has to be given in octal notation (e.g.
                        0644). The permission of the newly created <return>FIFO</return> also depends on the setting
                        of the current <strong>umask()</strong>. The permissions of the created file are (mode &
                        ~umask).

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


id: posix_mknod
type: function
doc:
<comment>Description:</comment>
  Create a special or ordinary file (POSIX.1)
    
  
  Creates a special or ordinary file.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The file to create
  <info>int</info>     <strong>$flags</strong>     This parameter is constructed by a bitwise OR between file type (one of the
                     following constants: <info>POSIX_S_IFREG</info>, <info>POSIX_S_IFCHR</info>, <info>POSIX_S_IFBLK</info>, <info>POSIX_S_IFIFO</info>
                     or <info>POSIX_S_IFSOCK</info>) and permissions.
  <info>int</info>     <strong>$major</strong>     The major device kernel identifier (required to pass when using <info>S_IFCHR</info> or
                     <info>S_IFBLK</info>).
  <info>int</info>     <strong>$minor</strong>     The minor device kernel identifier.

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

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


id: posix_pathconf
type: function
doc:
<comment>Description:</comment>
  Returns the value of a configurable limit
  
  This function is
  currently not documented; only its argument list is available.
  
  Returns the value of a configurable limit from <strong>$name</strong> for a <strong>$file</strong>

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  The name of the file whose limit you want to get.
  <info>int</info>     <strong>$name</strong>  The name of the configurable limit, one of the following. <info>POSIX_PC_LINK_MAX</info>,
                 <info>POSIX_PC_MAX_CANON</info> <info>POSIX_PC_MAX_INPUT</info>, <info>POSIX_PC_NAME_MAX</info> <info>POSIX_PC_PATH_MAX</info>,
                 <info>POSIX_PC_PIPE_BUF</info> <info>POSIX_PC_CHOWN_RESTRICTED</info>, <info>POSIX_PC_NO_TRUNC</info>
                 <info>POSIX_PC_ALLOC_SIZE_MIN</info>, <info>POSIX_PC_SYMLINK_MAX</info>

<comment>Return:</comment>
  <info>int|false</info>  Returns the configurable limit or <info>false</info>.

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


id: posix_setegid
type: function
doc:
<comment>Description:</comment>
  Set the effective GID of the current process
  
  Set the effective group ID of the current process. This is a privileged function and needs
  appropriate privileges (usually root) on the system to be able to perform this function.

<comment>Param:</comment>
  <info>int</info>  <strong>$group_id</strong>  The group id.

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

<comment>See Also:</comment>
   * <strong>posix_getgrgid()</strong>
   * <strong>posix_getgid()</strong>
   * <strong>posix_setgid()</strong>


id: posix_seteuid
type: function
doc:
<comment>Description:</comment>
  Set the effective UID of the current process
  
  Set the effective user ID of the current process. This is a privileged function and needs
  appropriate privileges (usually root) on the system to be able to perform this function.

<comment>Param:</comment>
  <info>int</info>  <strong>$user_id</strong>  The user id.

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

<comment>See Also:</comment>
   * <strong>posix_geteuid()</strong>
   * <strong>posix_setuid()</strong>
   * <strong>posix_getuid()</strong>


id: posix_setgid
type: function
doc:
<comment>Description:</comment>
  Set the GID of the current process
  
  Set the real group ID of the current process. This is a privileged function and needs appropriate
  privileges (usually root) on the system to be able to perform this function. The appropriate order
  of function calls is <strong>posix_setgid()</strong> first, <strong>posix_setuid()</strong> last.
  
  If the caller is a super user, this will also set the effective group id.

<comment>Param:</comment>
  <info>int</info>  <strong>$group_id</strong>  The group id.

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

<comment>See Also:</comment>
   * <strong>posix_getgrgid()</strong>
   * <strong>posix_getgid()</strong>


id: posix_setpgid
type: function
doc:
<comment>Description:</comment>
  Set process group id for job control
  
  Let the process <strong>$process_id</strong> join the process group <strong>$process_group_id</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$process_id</strong>        The process id.
  <info>int</info>  <strong>$process_group_id</strong>  The process group id.

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

<comment>See Also:</comment>
   * 
     See POSIX.1 and the setsid(2) manual page on the POSIX system for more
     information on process groups and job control.
    


id: posix_setrlimit
type: function
doc:
<comment>Description:</comment>
  Set system resource limits
  
  <strong>posix_setrlimit()</strong> sets the soft and hard limits for a given system resource.
  
  Each resource has an associated soft and hard limit.  The soft limit is the value that the kernel
  enforces for the corresponding resource.  The hard limit acts as a ceiling for the soft limit. An
  unprivileged process may only set its soft limit to a value from 0 to the hard limit, and
  irreversibly lower its hard limit.

<comment>Param:</comment>
  <info>int</info>  <strong>$resource</strong>    The resource limit constant corresponding to the limit that is being set.
  <info>int</info>  <strong>$soft_limit</strong>  The soft limit, in whatever unit the resource limit requires, or
                    <info>POSIX_RLIMIT_INFINITY</info>.
  <info>int</info>  <strong>$hard_limit</strong>  The hard limit, in whatever unit the resource limit requires, or
                    <info>POSIX_RLIMIT_INFINITY</info>.

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

<comment>See Also:</comment>
   * man page SETRLIMIT(2)
   * <strong>posix_getrlimit()</strong>


id: posix_setsid
type: function
doc:
<comment>Description:</comment>
  Make the current process a session leader
  
  Make the current process a session leader.

<comment>Return:</comment>
  <info>int</info>  Returns the session id, or -1 on errors.

<comment>See Also:</comment>
   * 
     The POSIX.1 and the setsid(2) manual page on the POSIX system for more
     information on process groups and job control.
    


id: posix_setuid
type: function
doc:
<comment>Description:</comment>
  Set the UID of the current process
  
  Set the real user ID of the current process. This is a privileged function that needs appropriate
  privileges (usually root) on the system to be able to perform this function.

<comment>Param:</comment>
  <info>int</info>  <strong>$user_id</strong>  The user id.

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

<comment>See Also:</comment>
   * <strong>posix_setgid()</strong>
   * <strong>posix_seteuid()</strong>
   * <strong>posix_getuid()</strong>
   * <strong>posix_geteuid()</strong>


id: posix_strerror
type: function
doc:
<comment>Description:</comment>
  Retrieve the system error message associated with the given errno
  
  Returns the POSIX system error message associated with the given <strong>$error_code</strong>.  You may get the
  <strong>$error_code</strong> parameter by calling <strong>posix_get_last_error()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$error_code</strong>  A POSIX error number, returned by  <strong>posix_get_last_error()</strong>. If set to 0, then the
                    string "Success" is returned.

<comment>Return:</comment>
  <info>string</info>  Returns the error message, as a string.

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


id: posix_sysconf
type: function
doc:
<comment>Description:</comment>
  Returns system runtime information
  
  Returns system runtime information.

<comment>Param:</comment>
  <info>int</info>  <strong>$conf_id</strong>  Identifier of the variable with the following constants <info>POSIX_SC_ARG_MAX</info>,
                 <info>POSIX_SC_PAGESIZE</info> <info>POSIX_SC_NPROCESSORS_CONF</info>, <info>POSIX_SC_NPROCESSORS_ONLN</info>

<comment>Return:</comment>
  <info>int</info>  Returns the numeric value related to <strong>$conf_id</strong>


id: posix_times
type: function
doc:
<comment>Description:</comment>
  Get process times
  
  Gets information about the current CPU usage.

<comment>Return:</comment>
  <info>array|false</info>  Returns a hash of strings with information about the current process CPU usage. The
               indices of the hash are:  ticks - the number of clock ticks that have elapsed since
               reboot.  utime - user time used by the current process.  stime - system time used by
               the current process.  cutime - user time used by current process and children.
               cstime - system time used by current process and children.  The function returns
               <info>false</info> on failure.
               
               ticks - the number of clock ticks that have elapsed since reboot.
               
               utime - user time used by the current process.
               
               stime - system time used by the current process.
               
               cutime - user time used by current process and children.
               
               cstime - system time used by current process and children.


id: posix_ttyname
type: function
doc:
<comment>Description:</comment>
  Determine terminal device name
  
  Returns a <info>string</info> for the absolute path to the current terminal device that is open on the file
  descriptor <strong>$file_descriptor</strong>.

<comment>Param:</comment>
  <info>resource|int</info>  <strong>$file_descriptor</strong>  The file descriptor, which is expected to be either a file
                                  <info>resource</info> or an <info>int</info>. An <info>int</info> will be assumed to be a file descriptor
                                  that can be passed directly to the underlying system call.

<comment>Return:</comment>
  <info>string|false</info>  On success, returns a <info>string</info> of the absolute path of the <strong>$file_descriptor</strong>. On
                failure, returns <info>false</info>

<comment>See Also:</comment>
   * <strong>posix_isatty()</strong>
   * <strong>stream_isatty()</strong>


id: posix_uname
type: function
doc:
<comment>Description:</comment>
  Get system name
  
  Gets information about the system.
  
  Posix requires that assumptions must not be made about the format of the values, e.g. the
  assumption that a release may contain three digits or anything else returned by this function.

<comment>Return:</comment>
  <info>array|false</info>  Returns a hash of strings with information about the system. The indices of the hash
               are  sysname - operating system name (e.g. Linux)  nodename - system name (e.g.
               valiant)  release - operating system release (e.g. 2.2.10)  version - operating
               system version (e.g. #4 Tue Jul 20 17:01:36 MEST 1999)  machine - system architecture
               (e.g. i586)  domainname - DNS domainname (e.g. example.com)
               
               sysname - operating system name (e.g. Linux)
               
               nodename - system name (e.g. valiant)
               
               release - operating system release (e.g. 2.2.10)
               
               version - operating system version (e.g. #4 Tue Jul 20 17:01:36 MEST 1999)
               
               machine - system architecture (e.g. i586)
               
               domainname - DNS domainname (e.g. example.com)
               
               domainname is a GNU extension and not part of POSIX.1, so this field is only
               available on GNU systems or when using the GNU libc.
               
               The function returns <info>false</info> on failure.


id: pow
type: function
doc:
<comment>Description:</comment>
  Exponential expression
  
  Returns <strong>$num</strong> raised to the power of <strong>$exponent</strong>.
  
  It is possible to use the ** operator instead.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$num</strong>       The base to use
  <info>mixed</info>  <strong>$exponent</strong>  The exponent

<comment>Return:</comment>
  <info>int|float|object</info>  <strong>$num</strong> raised to the power of <strong>$exponent</strong>. If both arguments are non-negative
                    integers and the result can be represented as an integer, the result will be
                    returned with <info>int</info> type, otherwise it will be returned as a <info>float</info>.

<comment>See Also:</comment>
   * <strong>exp()</strong>
   * <strong>sqrt()</strong>
   * <strong>bcpow()</strong>
   * <strong>gmp_pow()</strong>


id: preg_filter
type: function
doc:
<comment>Description:</comment>
  Perform a regular expression search and replace
  
  <strong>preg_filter()</strong> is identical to <strong>preg_replace()</strong> except it only returns the (possibly transformed)
  subjects where there was a match. For details about how this function works, read the
  <strong>preg_replace()</strong> documentation.

<comment>Return:</comment>
  <info>string|array|null</info>  Returns an <info>array</info> if the <strong>$subject</strong> parameter is an <info>array</info>, or a <info>string</info> otherwise.
                     
                     If no matches are found or an error occurred, an empty <info>array</info>  is returned when
                     <strong>$subject</strong> is an <info>array</info> or <info>null</info> otherwise.

<comment>See Also:</comment>
   * PCRE Patterns
   * <strong>preg_quote()</strong>
   * <strong>preg_replace()</strong>
   * <strong>preg_replace_callback()</strong>
   * <strong>preg_grep()</strong>
   * <strong>preg_last_error()</strong>


id: preg_grep
type: function
doc:
<comment>Description:</comment>
  Return array entries that match the pattern
  
  Returns the array consisting of the elements of the  <strong>$array</strong> array that match the given <strong>$pattern</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The pattern to search for, as a string.
  <info>array</info>   <strong>$array</strong>    The input array.
  <info>int</info>     <strong>$flags</strong>    If set to <info>PREG_GREP_INVERT</info>, this function returns the elements of the input
                    array that do not match the given <strong>$pattern</strong>.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array indexed using the keys from the <strong>$array</strong> array,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * PCRE Patterns
   * <strong>preg_quote()</strong>
   * <strong>preg_match_all()</strong>
   * <strong>preg_filter()</strong>
   * <strong>preg_last_error()</strong>


id: preg_last_error
type: function
doc:
<comment>Description:</comment>
  Returns the error code of the last PCRE regex execution
  
  Returns the error code of the last PCRE regex execution.
  
  <strong>preg_last_error()</strong> example
  ]]>The above example will output:
  
  The above example will output:

<comment>Return:</comment>
  <info>int</info>  Returns one of the following constants (explained on their own page):
       <info>PREG_NO_ERROR</info><info>PREG_INTERNAL_ERROR</info><info>PREG_BACKTRACK_LIMIT_ERROR</info> (see also
       pcre.backtrack_limit)<info>PREG_RECURSION_LIMIT_ERROR</info> (see also
       pcre.recursion_limit)<info>PREG_BAD_UTF8_ERROR</info><info>PREG_BAD_UTF8_OFFSET_ERROR</info><info>PREG_JIT_STACKLIMIT_ERROR</info>

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


id: preg_last_error_msg
type: function
doc:
<comment>Description:</comment>
  Returns the error message of the last PCRE regex execution
  
  Returns the error message of the last PCRE regex execution.

<comment>Return:</comment>
  <info>string</info>  Returns the error message on success, or <return>"No error"</return> if no error has occurred.

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


id: preg_match
type: function
doc:
<comment>Description:</comment>
  Perform a regular expression match
  
  Searches <strong>$subject</strong> for a match to the regular expression given in <strong>$pattern</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The pattern to search for, as a string.
  <info>string</info>  <strong>$subject</strong>  The input string.
  <info>array</info>   <strong>$matches</strong>  If <strong>$matches</strong> is provided, then it is filled with the results of search.
                    $matches[0] will contain the text that matched the full pattern, $matches[1]
                    will have the text that matched the first captured parenthesized subpattern, and
                    so on.
  <info>int</info>     <strong>$flags</strong>    <strong>$flags</strong> can be a combination of the following flags: <info>PREG_OFFSET_CAPTURE</info> If this
                    flag is passed, for every occurring match the appendant string offset (in bytes)
                    will also be returned. Note that this changes the value of <strong>$matches</strong> into an
                    array where every element is an array consisting of the matched string at offset
                    <return>0</return> and its string offset into <strong>$subject</strong> at offset <return>1</return>.
                    ]]>The above example will output: Array ( [0] => foobarbaz [1] => 0 )
                     [1] => Array ( [0] => foo [1] => 0 )
                     [2] => Array ( [0] => bar [1] => 3 )
                     [3] => Array ( [0] => baz [1] => 6 )
                    
                    )
                    ]]> <info>PREG_UNMATCHED_AS_NULL</info> If this flag is passed, unmatched subpatterns are
                    reported as <info>null</info>; otherwise they are reported as an empty <info>string</info>.
                    ]]>The above example will output: string(2) "ac" [1]=> string(1) "a" [2]=>
                    string(0) "" [3]=> string(1) "c"
                    }
                    array(4) { [0]=> string(2) "ac" [1]=> string(1) "a" [2]=> NULL [3]=> string(1)
                    "c"
                    }
                    ]]> 
                    
                    If this flag is passed, for every occurring match the appendant string offset
                    (in bytes) will also be returned. Note that this changes the value of <strong>$matches</strong>
                    into an array where every element is an array consisting of the matched string
                    at offset <return>0</return> and its string offset into <strong>$subject</strong> at offset <return>1</return>.
                    ]]>The above example will output: Array ( [0] => foobarbaz [1] => 0 )
                     [1] => Array ( [0] => foo [1] => 0 )
                     [2] => Array ( [0] => bar [1] => 3 )
                     [3] => Array ( [0] => baz [1] => 6 )
                    
                    )
                    ]]>
                    
                    The above example will output:
                    
                    If this flag is passed, unmatched subpatterns are reported as <info>null</info>; otherwise
                    they are reported as an empty <info>string</info>.
                    ]]>The above example will output: string(2) "ac" [1]=> string(1) "a" [2]=>
                    string(0) "" [3]=> string(1) "c"
                    }
                    array(4) { [0]=> string(2) "ac" [1]=> string(1) "a" [2]=> NULL [3]=> string(1)
                    "c"
                    }
                    ]]>
                    
                    The above example will output:
  <info>array</info>   <strong>$matches</strong>  If this flag is passed, for every occurring match the appendant string offset
                    (in bytes) will also be returned. Note that this changes the value of <strong>$matches</strong>
                    into an array where every element is an array consisting of the matched string
                    at offset <return>0</return> and its string offset into <strong>$subject</strong> at offset <return>1</return>.
                    ]]>The above example will output: Array ( [0] => foobarbaz [1] => 0 )
                     [1] => Array ( [0] => foo [1] => 0 )
                     [2] => Array ( [0] => bar [1] => 3 )
                     [3] => Array ( [0] => baz [1] => 6 )
                    
                    )
                    ]]>
                    
                    The above example will output:
  <info>int</info>     <strong>$offset</strong>   Normally, the search starts from the beginning of the subject string. The
                    optional parameter <strong>$offset</strong> can be used to specify the alternate place from which
                    to start the search (in bytes).
                    
                    Using <strong>$offset</strong> is not equivalent to passing substr($subject, $offset) to
                    <strong>preg_match()</strong> in place of the subject string, because <strong>$pattern</strong> can contain
                    assertions such as ^, $ or (?\<=x). Compare:
                    ]]>The above example will output: while this example 
                    ]]> will produce  Array ( [0] => def [1] => 0 )
                    
                    )
                    ]]> Alternatively, to avoid using <strong>substr()</strong>, use the <return>\G</return> assertion rather than the
                    <return>^</return> anchor, or the <return>A</return> modifier instead, both of which work with the <strong>$offset</strong>
                    parameter.
                    
                    The above example will output:
                    
                    while this example
                    
                    will produce
                    
                    Alternatively, to avoid using <strong>substr()</strong>, use the <return>\G</return> assertion rather than the <return>^</return>
                    anchor, or the <return>A</return> modifier instead, both of which work with the <strong>$offset</strong>
                    parameter.

<comment>Return:</comment>
  <info>int|false</info>  <strong>preg_match()</strong> returns 1 if the <strong>$pattern</strong> matches given <strong>$subject</strong>, 0 if it does not, or
             <info>false</info> on failure.
             
             This function may
             return Boolean <info>false</info>, but may also return a non-Boolean value which
             evaluates to <info>false</info>. Please read the section on Booleans for more
             information. Use the ===
             operator for testing the return value of this
             function.

<comment>See Also:</comment>
   * PCRE Patterns
   * <strong>preg_quote()</strong>
   * <strong>preg_match_all()</strong>
   * <strong>preg_replace()</strong>
   * <strong>preg_split()</strong>
   * <strong>preg_last_error()</strong>
   * <strong>preg_last_error_msg()</strong>


id: preg_match_all
type: function
doc:
<comment>Description:</comment>
  Perform a global regular expression match
  
  Searches <strong>$subject</strong> for all matches to the regular expression given in <strong>$pattern</strong> and puts them in
  <strong>$matches</strong> in the order specified by <strong>$flags</strong>.
  
  After the first match is found, the subsequent searches  are continued on from end of the last
  match.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The pattern to search for, as a string.
  <info>string</info>  <strong>$subject</strong>  The input string.
  <info>array</info>   <strong>$matches</strong>  Array of all matches in multi-dimensional array ordered according to <strong>$flags</strong>.
  <info>int</info>     <strong>$flags</strong>    Can be a combination of the following flags (note that it doesn't make sense to
                    use <info>PREG_PATTERN_ORDER</info> together with <info>PREG_SET_ORDER</info>): <info>PREG_PATTERN_ORDER</info> Orders
                    results so that $matches[0] is an array of full pattern matches, $matches[1] is
                    an array of strings matched by the first parenthesized subpattern, and so on.
                    ]]>The above example will output:example: , this is a test
                    example: , this is a test
                    ]]> So, $out[0] contains an array of strings that matched the full pattern, and
                    $out[1] contains an array of strings enclosed by tags.  If the pattern contains
                    named subpatterns, $matches additionally contains entries for keys with the
                    subpattern name.  If the pattern contains duplicate named subpatterns, only the
                    rightmost subpattern is stored in $matches[NAME].
                    ]]>The above example will output:  [1] => bar
                    )
                    ]]> <info>PREG_SET_ORDER</info> Orders results so that $matches[0] is an array of first set
                    of matches, $matches[1] is an array of second set of matches, and so on.
                    ]]>The above example will output:example: , example:
                    this is a test, this is a test
                    ]]> <info>PREG_OFFSET_CAPTURE</info> If this flag is passed, for every occurring match the
                    appendant string offset (in bytes) will also be returned. Note that this changes
                    the value of <strong>$matches</strong> into an array of arrays where every element is an array
                    consisting of the matched string at offset <return>0</return> and its string offset into <strong>$subject</strong>
                    at offset <return>1</return>.
                    ]]>The above example will output: Array ( [0] => Array ( [0] => foobarbaz [1] =>
                    0 )
                     )
                     [1] => Array ( [0] => Array ( [0] => foo [1] => 0 )
                     )
                     [2] => Array ( [0] => Array ( [0] => bar [1] => 3 )
                     )
                     [3] => Array ( [0] => Array ( [0] => baz [1] => 6 )
                     )
                    
                    )
                    ]]> <info>PREG_UNMATCHED_AS_NULL</info> If this flag is passed, unmatched subpatterns are
                    reported as <info>null</info>; otherwise they are reported as an empty <info>string</info>.
                    
                    Orders results so that $matches[0] is an array of full pattern matches,
                    $matches[1] is an array of strings matched by the first parenthesized
                    subpattern, and so on.
                    
                    
                    ]]>The above example will output:example: , this is a test
                    example: , this is a test
                    ]]> So, $out[0] contains an array of strings that matched the full pattern, and
                    $out[1] contains an array of strings enclosed by tags.
                    
                    The above example will output:
                    
                    So, $out[0] contains an array of strings that matched the full pattern, and
                    $out[1] contains an array of strings enclosed by tags.
                    
                    If the pattern contains named subpatterns, $matches additionally contains
                    entries for keys with the subpattern name.
                    
                    If the pattern contains duplicate named subpatterns, only the rightmost
                    subpattern is stored in $matches[NAME].
                    ]]>The above example will output:  [1] => bar
                    )
                    ]]>
                    
                    The above example will output:
                    
                    Orders results so that $matches[0] is an array of first set of matches,
                    $matches[1] is an array of second set of matches, and so on.
                    ]]>The above example will output:example: , example:
                    this is a test, this is a test
                    ]]>
                    
                    The above example will output:
                    
                    If this flag is passed, for every occurring match the appendant string offset
                    (in bytes) will also be returned. Note that this changes the value of <strong>$matches</strong>
                    into an array of arrays where every element is an array consisting of the
                    matched string at offset <return>0</return> and its string offset into <strong>$subject</strong> at offset <return>1</return>.
                    ]]>The above example will output: Array ( [0] => Array ( [0] => foobarbaz [1] =>
                    0 )
                     )
                     [1] => Array ( [0] => Array ( [0] => foo [1] => 0 )
                     )
                     [2] => Array ( [0] => Array ( [0] => bar [1] => 3 )
                     )
                     [3] => Array ( [0] => Array ( [0] => baz [1] => 6 )
                     )
                    
                    )
                    ]]>
                    
                    The above example will output:
                    
                    If this flag is passed, unmatched subpatterns are reported as <info>null</info>; otherwise
                    they are reported as an empty <info>string</info>.
                    
                    If no order flag is given, <info>PREG_PATTERN_ORDER</info> is assumed.
  <info>array</info>   <strong>$matches</strong>  If this flag is passed, for every occurring match the appendant string offset
                    (in bytes) will also be returned. Note that this changes the value of <strong>$matches</strong>
                    into an array of arrays where every element is an array consisting of the
                    matched string at offset <return>0</return> and its string offset into <strong>$subject</strong> at offset <return>1</return>.
                    ]]>The above example will output: Array ( [0] => Array ( [0] => foobarbaz [1] =>
                    0 )
                     )
                     [1] => Array ( [0] => Array ( [0] => foo [1] => 0 )
                     )
                     [2] => Array ( [0] => Array ( [0] => bar [1] => 3 )
                     )
                     [3] => Array ( [0] => Array ( [0] => baz [1] => 6 )
                     )
                    
                    )
                    ]]>
                    
                    The above example will output:
  <info>int</info>     <strong>$offset</strong>   Normally, the search starts from the beginning of the subject string. The
                    optional parameter <strong>$offset</strong> can be used to specify the alternate place from which
                    to start the search (in bytes).
                    
                    Using <strong>$offset</strong> is not equivalent to passing substr($subject, $offset) to
                    <strong>preg_match_all()</strong> in place of the subject string, because <strong>$pattern</strong> can contain
                    assertions such as ^, $ or (?\<=x). See <strong>preg_match()</strong> for examples.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of full pattern matches (which might be zero), or <info>false</info> on failure.

<comment>See Also:</comment>
   * PCRE Patterns
   * <strong>preg_quote()</strong>
   * <strong>preg_match()</strong>
   * <strong>preg_replace()</strong>
   * <strong>preg_split()</strong>
   * <strong>preg_last_error()</strong>


id: preg_quote
type: function
doc:
<comment>Description:</comment>
  Quote regular expression characters
  
  <strong>preg_quote()</strong> takes <strong>$str</strong> and puts a backslash in front of every character that is part of the
  regular expression syntax.  This is useful if you have a run-time string that you need to match in
  some text and the string may contain special regex characters.
  
  The special regular expression characters are: <return>. \ + * ? [ ^ ] $ ( ) { } = ! \< &gt; | : - #</return>
  
  Note that <return>/</return> is not a special regular expression character.
  
  Note that <strong>preg_quote()</strong> is not meant to be applied to the $replacement string(s) of <strong>preg_replace()</strong>
  etc.

<comment>Param:</comment>
  <info>string</info>       <strong>$str</strong>        The input string.
  <info>string|null</info>  <strong>$delimiter</strong>  If the optional <strong>$delimiter</strong> is specified, it will also be escaped.  This
                           is useful for escaping the delimiter that is required by the PCRE
                           functions. The <return>/</return> is the most commonly used delimiter.

<comment>Return:</comment>
  <info>string</info>  Returns the quoted (escaped) string.

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


id: preg_replace
type: function
doc:
<comment>Description:</comment>
  Perform a regular expression search and replace
  
  Searches <strong>$subject</strong> for matches to <strong>$pattern</strong> and replaces them with <strong>$replacement</strong>.
  
  To match an exact string, rather than a pattern, consider using <strong>str_replace()</strong> or <strong>str_ireplace()</strong>
  instead of this function.

<comment>Param:</comment>
  <info>string|array</info>  <strong>$pattern</strong>      The pattern to search for. It can be either a string or an array with
                              strings.
                              
                              Several PCRE modifiers are also available.
  <info>string|array</info>  <strong>$replacement</strong>  The string or an array with strings to replace. If this parameter is a
                              string and the <strong>$pattern</strong> parameter is an array, all patterns will be
                              replaced by that string. If both <strong>$pattern</strong> and <strong>$replacement</strong> parameters
                              are arrays, each <strong>$pattern</strong> will be replaced by the <strong>$replacement</strong>
                              counterpart. If there are fewer elements in the <strong>$replacement</strong> array
                              than in the <strong>$pattern</strong> array, any extra <strong>$pattern</strong>s will be replaced by an
                              empty string.
                              
                              <strong>$replacement</strong> may contain references of the form <return>\n</return> or <return>$n</return>, with the
                              latter form being the preferred one. Every such reference will be
                              replaced by the text captured by the n'th parenthesized pattern. n can
                              be from 0 to 99, and <return>\0</return> or <return>$0</return> refers to the text matched by the whole
                              pattern. Opening parentheses are counted from left to right (starting
                              from 1) to obtain the number of the capturing subpattern. Note that
                              backslashes in <info>string</info> literals may require to be escaped.
                              
                              When working with a replacement pattern where a backreference is
                              immediately followed by another number (i.e.: placing a literal number
                              immediately after a matched pattern), you cannot use the familiar  <return>\1</return>
                              notation for your backreference.   <return>\11</return>, for example, would confuse
                              <strong>preg_replace()</strong> since it does not know whether you want the <return>\1</return>
                              backreference followed by a literal  <return>1</return>, or the <return>\11</return> backreference
                              followed by nothing.  In this case the solution is to use  <return>${1}1</return>.
                              This creates an isolated <return>$1</return> backreference, leaving the <return>1</return> as a literal.
                              
                              When using the deprecated <return>e</return> modifier, this function escapes some
                              characters (namely <return>'</return>, <return>"</return>, <return>\</return> and NULL) in the strings that replace the
                              backreferences. This is done to ensure that no syntax errors arise
                              from backreference usage with either single or double quotes (e.g.
                              <return>'strlen(\'$1\')+strlen("$2")'</return>). Make sure you are aware of PHP's
                              string syntax to know exactly how the interpreted string will look.
  <info>string|array</info>  <strong>$subject</strong>      The string or an array with strings to search and replace.
                              
                              If <strong>$subject</strong> is an array, then the search and replace is performed on
                              every entry of <strong>$subject</strong>, and the return value is an array as well.
                              
                              If the <strong>$subject</strong> array is associative, keys will be preserved in the
                              returned value.
  <info>int</info>           <strong>$limit</strong>        The maximum possible replacements for each pattern in each <strong>$subject</strong>
                              string. Defaults to <return>-1</return> (no limit).
  <info>int</info>           <strong>$count</strong>        If specified, this variable will be filled with the number of
                              replacements done.

<comment>Return:</comment>
  <info>string|array|null</info>  <strong>preg_replace()</strong> returns an array if the <strong>$subject</strong> parameter is an array, or a
                     string otherwise.
                     
                     If matches are found, the new <strong>$subject</strong> will be returned, otherwise <strong>$subject</strong>
                     will be returned unchanged or <info>null</info> if an error occurred.

<comment>See Also:</comment>
   * PCRE Patterns
   * <strong>preg_quote()</strong>
   * <strong>preg_filter()</strong>
   * <strong>preg_match()</strong>
   * <strong>preg_replace_callback()</strong>
   * <strong>preg_split()</strong>
   * <strong>preg_last_error()</strong>
   * <strong>str_replace()</strong>


id: preg_replace_callback
type: function
doc:
<comment>Description:</comment>
  Perform a regular expression search and replace using a callback
  
  The behavior of this function is almost identical to <strong>preg_replace()</strong>, except for the fact that
  instead of <strong>$replacement</strong> parameter, one should specify a <strong>$callback</strong>.

<comment>Param:</comment>
  <info>string|array</info>  <strong>$pattern</strong>   The pattern to search for. It can be either a string or an array with
                           strings.
  <info>callable</info>      <strong>$callback</strong>  A callback that will be called and passed an array of matched elements in
                           the <strong>$subject</strong> string. The callback should return the replacement string.
                           This is the callback signature:
                           
                           <info>string</info>handler<info>array</info><strong>$matches</strong>
                           
                           You'll often need the <strong>$callback</strong> function for a <strong>preg_replace_callback()</strong> in
                           just one place. In this case you can use an anonymous function to declare
                           the callback within the call to <strong>preg_replace_callback()</strong>. By doing it this
                           way you have all information for the call in one place and do not clutter
                           the function namespace with a callback function's name not used anywhere
                           else.
                           
                           <strong>preg_replace_callback()</strong> and anonymous function
                           ]]>
  <info>string|array</info>  <strong>$subject</strong>   The string or an array with strings to search and replace.
  <info>int</info>           <strong>$limit</strong>     The maximum possible replacements for each pattern in each <strong>$subject</strong>
                           string. Defaults to <return>-1</return> (no limit).
  <info>int</info>           <strong>$count</strong>     If specified, this variable will be filled with the number of
                           replacements done.
  <info>int</info>           <strong>$flags</strong>     <strong>$flags</strong> can be a combination of the <info>PREG_OFFSET_CAPTURE</info> and
                           <info>PREG_UNMATCHED_AS_NULL</info> flags, which influence the format of the matches
                           array. See the description in <strong>preg_match()</strong> for more details.

<comment>Return:</comment>
  <info>string|array|null</info>  <strong>preg_replace_callback()</strong> returns an array if the <strong>$subject</strong> parameter is an array,
                     or a string otherwise. On errors the return value is <info>null</info>
                     
                     If matches are found, the new subject will be returned, otherwise <strong>$subject</strong> will
                     be returned unchanged.

<comment>See Also:</comment>
   * PCRE Patterns
   * <strong>preg_replace_callback_array()</strong>
   * <strong>preg_quote()</strong>
   * <strong>preg_replace()</strong>
   * <strong>preg_last_error()</strong>
   * Anonymous functions


id: preg_replace_callback_array
type: function
doc:
<comment>Description:</comment>
  Perform a regular expression search and replace using callbacks
  
  The behavior of this function is similar to <strong>preg_replace_callback()</strong>, except that callbacks are
  executed on a per-pattern basis.

<comment>Param:</comment>
  <info>array</info>         <strong>$pattern</strong>  An associative array mapping patterns (keys) to <info>callable</info>s (values).
  <info>string|array</info>  <strong>$subject</strong>  The string or an array with strings to search and replace.
  <info>int</info>           <strong>$limit</strong>    The maximum possible replacements for each pattern in each <strong>$subject</strong>
                          string. Defaults to <return>-1</return> (no limit).
  <info>int</info>           <strong>$count</strong>    If specified, this variable will be filled with the number of replacements
                          done.
  <info>int</info>           <strong>$flags</strong>    <strong>$flags</strong> can be a combination of the <info>PREG_OFFSET_CAPTURE</info> and
                          <info>PREG_UNMATCHED_AS_NULL</info> flags, which influence the format of the matches
                          array. See the description in <strong>preg_match()</strong> for more details.

<comment>Return:</comment>
  <info>string|array|null</info>  <strong>preg_replace_callback_array()</strong> returns an array if the <strong>$subject</strong> parameter is an
                     array, or a string otherwise. On errors the return value is <info>null</info>
                     
                     If matches are found, the new subject will be returned, otherwise <strong>$subject</strong> will
                     be returned unchanged.

<comment>See Also:</comment>
   * PCRE Patterns
   * <strong>preg_replace_callback()</strong>
   * <strong>preg_quote()</strong>
   * <strong>preg_replace()</strong>
   * <strong>preg_last_error()</strong>
   * Anonymous functions


id: preg_split
type: function
doc:
<comment>Description:</comment>
  Split string by a regular expression
  
  Split the given string by a regular expression.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The pattern to search for, as a string.
  <info>string</info>  <strong>$subject</strong>  The input string.
  <info>int</info>     <strong>$limit</strong>    If specified, then only substrings up to <strong>$limit</strong> are returned with the rest of
                    the string being placed in the last substring.  A <strong>$limit</strong> of -1 or 0 means "no
                    limit".
  <info>int</info>     <strong>$flags</strong>    <strong>$flags</strong> can be any combination of the following flags (combined with the <return>|</return>
                    bitwise operator): <info>PREG_SPLIT_NO_EMPTY</info> If this flag is set, only non-empty
                    pieces will be returned by <strong>preg_split()</strong>. <info>PREG_SPLIT_DELIM_CAPTURE</info> If this flag
                    is set, parenthesized expression in the delimiter pattern will be captured and
                    returned as well. <info>PREG_SPLIT_OFFSET_CAPTURE</info> If this flag is set, for every
                    occurring match the appendant string offset will also be returned. Note that
                    this changes the return value in an array where every element is an array
                    consisting of the matched string at offset <return>0</return> and its string offset into <strong>$subject</strong>
                    at offset <return>1</return>.
                    
                    If this flag is set, only non-empty pieces will be returned by <strong>preg_split()</strong>.
                    
                    If this flag is set, parenthesized expression in the delimiter pattern will be
                    captured and returned as well.
                    
                    If this flag is set, for every occurring match the appendant string offset will
                    also be returned. Note that this changes the return value in an array where
                    every element is an array consisting of the matched string at offset <return>0</return> and its
                    string offset into <strong>$subject</strong> at offset <return>1</return>.
  <info>string</info>  <strong>$subject</strong>  If this flag is set, for every occurring match the appendant string offset will
                    also be returned. Note that this changes the return value in an array where
                    every element is an array consisting of the matched string at offset <return>0</return> and its
                    string offset into <strong>$subject</strong> at offset <return>1</return>.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array containing substrings of <strong>$subject</strong> split along boundaries matched by
               <strong>$pattern</strong>,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * PCRE Patterns
   * <strong>preg_quote()</strong>
   * <strong>implode()</strong>
   * <strong>preg_match()</strong>
   * <strong>preg_match_all()</strong>
   * <strong>preg_replace()</strong>
   * <strong>preg_last_error()</strong>


id: prev
type: function
doc:
<comment>Description:</comment>
  Rewind the internal array pointer
  
  Rewind the internal array pointer.
  
  <strong>prev()</strong> behaves just like <strong>next()</strong>, except it rewinds the internal array pointer one place instead of
  advancing it.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>  The input array.

<comment>Return:</comment>
  <info>mixed</info>  Returns the array value in the previous place that's pointed to by the internal array
         pointer, or <info>false</info> if there are no more elements.
         
         This function may
         return Boolean <info>false</info>, but may also return a non-Boolean value which
         evaluates to <info>false</info>. Please read the section on Booleans for more
         information. Use the ===
         operator for testing the return value of this
         function.

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


id: print
type: function
doc:
<comment>Description:</comment>
  Output a string
  
  Outputs <strong>$expression</strong>.
  
  <return>print</return> is not a function but a language construct. Its argument is the expression following the
  <return>print</return> keyword, and is not delimited by parentheses.
  
  The major differences to <strong>echo()</strong> are that <return>print</return> only accepts a single argument and always returns
  <return>1</return>.

<comment>Param:</comment>
  <info>string</info>  <strong>$expression</strong>  The expression to be output. Non-string values will be coerced to strings,
                       even when the <return>strict_types</return> directive is enabled.

<comment>Return:</comment>
  <info>int</info>  Returns <return>1</return>, always.

<comment>See Also:</comment>
   * <strong>echo()</strong>
   * <strong>printf()</strong>
   * <strong>flush()</strong>
   * Ways to specify literal strings


id: print_r
type: function
doc:
<comment>Description:</comment>
  Prints human-readable information about a variable
    
  
  <strong>print_r()</strong> displays information about a variable in a way that's readable by humans.
  
  <strong>print_r()</strong>, <strong>var_dump()</strong> and <strong>var_export()</strong> will also show protected and private properties of objects.
  Static class members will not be shown.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>   The expression to be printed.
  <info>bool</info>   <strong>$return</strong>  If you would like to capture the output of <strong>print_r()</strong>,  use the <strong>$return</strong> parameter.
                  When this parameter is set to <info>true</info>, <strong>print_r()</strong> will return the information rather
                  than print it.

<comment>Return:</comment>
  <info>string|bool</info>  If given a <info>string</info>, <info>int</info> or <info>float</info>, the value itself will be printed.  If given an
               <info>array</info>, values will be presented in a format that shows keys and elements.  Similar
               notation is used for <info>object</info>s.
               
               When the <strong>$return</strong> parameter is <info>true</info>, this function will return a <info>string</info>. Otherwise,
               the return value is <info>true</info>.

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>var_dump()</strong>
   * <strong>var_export()</strong>


id: printf
type: function
doc:
<comment>Description:</comment>
  Output a formatted string
  
  Produces output according to <strong>$format</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$format</strong>  The format string is composed of zero or more directives: ordinary characters
                   (excluding <return>%</return>) that are copied directly to the result and conversion
                   specifications, each of which results in fetching its own parameter.
                   
                   A conversion specification follows this prototype:
                   <return>%[argnum$][flags][width][.precision]specifier</return>.
                   
                   An integer followed by a dollar sign <return>$</return>, to specify which number argument to treat
                   in the conversion.
                   
                   FlagsFlagDescription<return>-</return> Left-justify within the given field width; Right
                   justification is the default <return>+</return> Prefix positive numbers with a plus sign <return>+</return>;
                   Default only negative are prefixed with a negative sign. <return> </return>(space) Pads the result
                   with spaces. This is the default. <return>0</return> Only left-pads numbers with zeros. With <return>s</return>
                   specifiers this can also right-pad with zeros. <return>'</return>(char) Pads the result with the
                   character (char).
                   
                   Either an integer that says how many characters (minimum) this conversion should
                   result in, or <return>*</return>. If <return>*</return> is used, then the width is supplied as an additional
                   integer value preceding the one formatted by the specifier.
                   
                   A period <return>.</return> optionally followed by either an integer or <return>*</return>, whose meaning depends
                   on the specifier:  For <return>e</return>, <return>E</return>, <return>f</return> and <return>F</return> specifiers: this is the number of digits to
                   be printed after the decimal point (by default, this is 6).  For <return>g</return>, <return>G</return>, <return>h</return> and <return>H</return>
                   specifiers: this is the maximum number of significant digits to be printed.  For
                   <return>s</return> specifier: it acts as a cutoff point, setting a maximum character limit to the
                   string.   If the period is specified without an explicit value for precision, 0
                   is assumed. If <return>*</return> is used, the precision is supplied as an additional integer
                   value preceding the one formatted by the specifier.
                   
                   For <return>e</return>, <return>E</return>, <return>f</return> and <return>F</return> specifiers: this is the number of digits to be printed after
                   the decimal point (by default, this is 6).
                   
                   For <return>g</return>, <return>G</return>, <return>h</return> and <return>H</return> specifiers: this is the maximum number of significant digits to
                   be printed.
                   
                   For <return>s</return> specifier: it acts as a cutoff point, setting a maximum character limit to
                   the string.
                   
                   If the period is specified without an explicit value for precision, 0 is assumed.
                   If <return>*</return> is used, the precision is supplied as an additional integer value preceding
                   the one formatted by the specifier.
                   
                   SpecifiersSpecifierDescription<return>%</return> A literal percent character. No argument is
                   required. <return>b</return> The argument is treated as an integer and presented as a binary
                   number. <return>c</return> The argument is treated as an integer and presented as the character
                   with that ASCII. <return>d</return> The argument is treated as an integer and presented as a
                   (signed) decimal number. <return>e</return> The argument is treated as scientific notation (e.g.
                   1.2e+2). <return>E</return> Like the <return>e</return> specifier but uses uppercase letter (e.g. 1.2E+2). <return>f</return> The
                   argument is treated as a float and presented as a floating-point number (locale
                   aware). <return>F</return> The argument is treated as a float and presented as a floating-point
                   number (non-locale aware). <return>g</return> General format.  Let P equal the precision if
                   nonzero, 6 if the precision is omitted, or 1 if the precision is zero. Then, if a
                   conversion with style E would have an exponent of X:  If P &gt; X ≥ −4, the
                   conversion is with style f and precision P − (X + 1). Otherwise, the conversion
                   is with style e and precision P − 1. <return>G</return> Like the <return>g</return> specifier but uses <return>E</return> and <return>f</return>. <return>h</return>
                   Like the <return>g</return> specifier but uses <return>F</return>. Available as of PHP 8.0.0. <return>H</return> Like the <return>g</return>
                   specifier but uses <return>E</return> and <return>F</return>. Available as of PHP 8.0.0. <return>o</return> The argument is treated
                   as an integer and presented as an octal number. <return>s</return> The argument is treated and
                   presented as a string. <return>u</return> The argument is treated as an integer and presented as
                   an unsigned decimal number. <return>x</return> The argument is treated as an integer and presented
                   as a hexadecimal number (with lowercase letters). <return>X</return> The argument is treated as an
                   integer and presented as a hexadecimal number (with uppercase letters).
                   
                   General format.
                   
                   Let P equal the precision if nonzero, 6 if the precision is omitted, or 1 if the
                   precision is zero. Then, if a conversion with style E would have an exponent of
                   X:
                   
                   If P &gt; X ≥ −4, the conversion is with style f and precision P − (X + 1).
                   Otherwise, the conversion is with style e and precision P − 1.
                   
                   The <return>c</return> type specifier ignores padding and width
                   
                   Attempting to use a combination of the string and width specifiers with character
                   sets that require more than one byte per character may result in unexpected
                   results
                   
                   Variables will be co-erced to a suitable type for the specifier: Type
                   HandlingTypeSpecifiers<info>string</info><return>s</return><info>int</info><return>d</return>, <return>u</return>, <return>c</return>, <return>o</return>, <return>x</return>, <return>X</return>, <return>b</return><info>float</info><return>e</return>, <return>E</return>, <return>f</return>, <return>F</return>, <return>g</return>, <return>G</return>, <return>h</return>, <return>H</return>
  <info>mixed</info>   <strong>$values</strong>  

<comment>Return:</comment>
  <info>int</info>  Returns the length of the outputted string.

<comment>See Also:</comment>
   * <strong>print()</strong>
   * <strong>sprintf()</strong>
   * <strong>fprintf()</strong>
   * <strong>vprintf()</strong>
   * <strong>vsprintf()</strong>
   * <strong>vfprintf()</strong>
   * <strong>sscanf()</strong>
   * <strong>fscanf()</strong>
   * <strong>number_format()</strong>
   * <strong>date()</strong>
   * <strong>flush()</strong>


id: proc_close
type: function
doc:
<comment>Description:</comment>
  Close a process opened by proc_open and return the exit code of that process
  
  <strong>proc_close()</strong> is similar to <strong>pclose()</strong> except that it only works on processes opened by <strong>proc_open()</strong>.
  <strong>proc_close()</strong> waits for the process to terminate, and returns its exit code.  Open pipes to that
  process are closed when this function is called, in order to avoid a deadlock - the child process
  may not be able to exit while the pipes are open.

<comment>Param:</comment>
  <info>resource</info>  <strong>$process</strong>  The <strong>proc_open()</strong> <info>resource</info> that will be closed.

<comment>Return:</comment>
  <info>int</info>  Returns the termination status of the process that was run. In case of  an error then <return>-1</return> is
       returned.
       
       If PHP has been compiled with --enable-sigchild, the return value of this function is
       undefined.


id: proc_get_status
type: function
doc:
<comment>Description:</comment>
  Get information about a process opened by proc_open
  
  <strong>proc_get_status()</strong> fetches data about a process opened using <strong>proc_open()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$process</strong>  The <strong>proc_open()</strong> <info>resource</info> that will be evaluated.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of collected information. The returned array contains the following elements:
         
         elementtypedescriptioncommand<info>string</info> The command string that was passed to <strong>proc_open()</strong>.
         pid<info>int</info>process idrunning<info>bool</info><info>true</info> if the process is still running, <info>false</info> if it has
         terminated. signaled<info>bool</info><info>true</info> if the child process has been terminated by an uncaught
         signal. Always set to <info>false</info> on Windows. stopped<info>bool</info><info>true</info> if the child process has been
         stopped by a signal. Always set to <info>false</info> on Windows. exitcode<info>int</info> The exit code returned by
         the process (which is only meaningful if <return>running</return> is <info>false</info>). Only first call of this
         function return real value, next calls return <return>-1</return>. termsig<info>int</info> The number of the signal that
         caused the child process to terminate its execution (only meaningful if <return>signaled</return> is <info>true</info>).
         stopsig<info>int</info> The number of the signal that caused the child process to stop its execution
         (only meaningful if <return>stopped</return> is <info>true</info>).

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


id: proc_nice
type: function
doc:
<comment>Description:</comment>
  Change the priority of the current process
  
  <strong>proc_nice()</strong> changes the priority of the current process by the amount specified in <strong>$priority</strong>. A
  positive <strong>$priority</strong> will lower the priority of the current process, whereas a negative <strong>$priority</strong>
  will raise the priority.
  
  <strong>proc_nice()</strong> is not related to <strong>proc_open()</strong> and its associated functions in any way.

<comment>Param:</comment>
  <info>int</info>  <strong>$priority</strong>  The new priority value, the value of this may differ on platforms.
                  
                  On Unix, a low value, such as <return>-20</return> means high priority  whereas positive values
                  have a lower priority.
                  
                  For Windows the <strong>$priority</strong> parameter has the  following meaning:

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure. If an error occurs, like the user lacks
        permission to change the priority,  an error of level <info>E_WARNING</info> is also generated.

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


id: proc_open
type: function
doc:
<comment>Description:</comment>
  Execute a command and open file pointers for input/output
      
  
  <strong>proc_open()</strong> is similar to <strong>popen()</strong> but provides a much greater degree of control over the program
  execution.

<comment>Param:</comment>
  <info>array|string</info>  <strong>$command</strong>          The commandline to execute as <info>string</info>. Special characters have to
                                  be properly escaped, and proper quoting has to be applied.
                                  
                                  On Windows, unless <return>bypass_shell</return> is set to <info>true</info> in <strong>$options</strong>, the
                                  <strong>$command</strong> is passed to cmd.exe (actually, <return>%ComSpec%</return>) with the <return>/c</return>
                                  flag as unquoted string (i.e. exactly as has been given to
                                  <strong>proc_open()</strong>). This can cause cmd.exe to remove enclosing quotes
                                  from <strong>$command</strong> (for details see the cmd.exe documentation),
                                  resulting in unexpected, and potentially even dangerous behavior,
                                  because cmd.exe error messages may contain (parts of) the passed
                                  <strong>$command</strong> (see example below).
                                  
                                  As of PHP 7.4.0, <strong>$command</strong> may be passed as <info>array</info> of command
                                  parameters. In this case the process will be opened directly
                                  (without going through a shell) and PHP will take care of any
                                  necessary argument escaping.
                                  
                                  On Windows, the argument escaping of the <info>array</info> elements assumes
                                  that the command line parsing of the executed command is
                                  compatible with the parsing of command line arguments done by the
                                  VC runtime.
  <info>array</info>         <strong>$descriptor_spec</strong>  An indexed array where the key represents the descriptor number
                                  and the value represents how PHP will pass that descriptor to the
                                  child process. 0 is stdin, 1 is stdout, while 2 is stderr.
                                  
                                  Each element can be: An array describing the pipe to pass to the
                                  process. The first element is the descriptor type and the second
                                  element is an option for the given type. Valid types are <return>pipe</return> (the
                                  second element is either <return>r</return> to pass the read end of the pipe to the
                                  process, or <return>w</return> to pass the write end) and <return>file</return> (the second element
                                  is a filename). Note that anything else than <return>w</return> is treated like <return>r</return>.
                                  A stream resource representing a real file descriptor (e.g. opened
                                  file, a socket, <info>STDIN</info>).
                                  
                                  The file descriptor numbers are not limited to 0, 1 and 2 - you
                                  may specify any valid file descriptor number and it will be passed
                                  to the child process. This allows your script to interoperate with
                                  other scripts that run as "co-processes". In particular, this is
                                  useful for passing passphrases to programs like PGP, GPG and
                                  openssl in a more secure manner. It is also useful for reading
                                  status information provided by those programs on auxiliary file
                                  descriptors.
  <info>array</info>         <strong>$pipes</strong>            Will be set to an indexed array of file pointers that correspond
                                  to PHP's end of any pipes that are created.
  <info>string|null</info>   <strong>$cwd</strong>              The initial working dir for the command. This must be an absolute
                                  directory path, or <info>null</info> if you want to use the default value (the
                                  working dir of the current PHP process)
  <info>array|null</info>    <strong>$env_vars</strong>         An array with the environment variables for the command that will
                                  be run, or <info>null</info> to use the same environment as the current PHP
                                  process
  <info>array|null</info>    <strong>$options</strong>          Allows you to specify additional options. Currently supported
                                  options include: <return>suppress_errors</return> (windows only): suppresses errors
                                  generated by this function when it's set to <info>true</info> <return>bypass_shell</return>
                                  (windows only): bypass <return>cmd.exe</return> shell when set to <info>true</info>
                                  <return>blocking_pipes</return> (windows only): force blocking pipes when set to
                                  <info>true</info> <return>create_process_group</return> (windows only): allow the child process
                                  to handle <return>CTRL</return> events when set to <info>true</info> <return>create_new_console</return> (windows
                                  only): the new process has a new console, instead of inheriting
                                  its parent's console

<comment>Return:</comment>
  <info>resource|false</info>  Returns a resource representing the process, which should be freed using
                  <strong>proc_close()</strong> when you are finished with it. On failure returns <info>false</info>.

<comment>See Also:</comment>
   * <strong>popen()</strong>
   * <strong>exec()</strong>
   * <strong>system()</strong>
   * <strong>passthru()</strong>
   * <strong>stream_select()</strong>
   * The backtick operator


id: proc_terminate
type: function
doc:
<comment>Description:</comment>
  Kills a process opened by proc_open
  
  Signals a <strong>$process</strong> (created using <strong>proc_open()</strong>) that it should terminate. <strong>proc_terminate()</strong> returns
  immediately and does not wait for the process to terminate.
  
  <strong>proc_terminate()</strong> allows you terminate the process and continue with other tasks.  You may poll the
  process (to see if it has stopped yet) by using the <strong>proc_get_status()</strong> function.

<comment>Param:</comment>
  <info>resource</info>  <strong>$process</strong>  The <strong>proc_open()</strong> <info>resource</info> that will be closed.
  <info>int</info>       <strong>$signal</strong>   This optional parameter is only useful on POSIX operating systems; you may
                      specify a signal to send to the process using the <return>kill(2)</return> system call.  The
                      default is <return>SIGTERM</return>.

<comment>Return:</comment>
  <info>bool</info>  Returns the termination status of the process that was run.

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


id: property_exists
type: function
doc:
<comment>Description:</comment>
  Checks if the object or class has a property
    
  
  This function checks if the given <strong>$property</strong> exists in the specified class.
  
  As opposed with <strong>isset()</strong>, <strong>property_exists()</strong> returns <info>true</info> even if the property has the value <info>null</info>.

<comment>Param:</comment>
  <info>object|string</info>  <strong>$object_or_class</strong>  The class name or an object of the class to test for
  <info>string</info>         <strong>$property</strong>         The name of the property

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the property exists, <info>false</info> if it doesn't exist or <info>null</info> in case of an error.

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


id: ps_add_bookmark
type: function
doc:
<comment>Description:</comment>
  Add bookmark to current page
  
  Adds a bookmark for the current page. Bookmarks usually appear in PDF-Viewers left of the page in
  a hierarchical tree. Clicking on a bookmark will jump to the given page.
  
  The note will not be visible if the document
  is printed or viewed but it will show up if the document is converted to
  pdf by either Acrobat Distiller™ or Ghostview.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$text</strong>    The text used for displaying the bookmark.
  <info>int</info>       <strong>$parent</strong>  A bookmark previously created by this function which is used as the parent of
                     the new bookmark.
  <info>int</info>       <strong>$open</strong>    If <strong>$open</strong> is unequal to zero the bookmark will be shown open by the pdf viewer.

<comment>Return:</comment>
  <info>int</info>  The returned value is a reference for the bookmark. It is only used if the bookmark shall be
       used as a parent. The value is greater zero if the function succeeds. In case of an error
       zero will be returned.

<comment>See Also:</comment>
   * <strong>ps_add_launchlink()</strong>
   * <strong>ps_add_pdflink()</strong>
   * <strong>ps_add_weblink()</strong>


id: ps_add_launchlink
type: function
doc:
<comment>Description:</comment>
  Adds link which launches file
  
  Places a hyperlink at the given position pointing to a file program which is being started when
  clicked on. The hyperlink's source position is a rectangle with its lower left corner at (llx,
  lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.
  
  The note will not be visible if the document
  is printed or viewed but it will show up if the document is converted to
  pdf by either Acrobat Distiller™ or Ghostview.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>     Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$llx</strong>       The x-coordinate of the lower left corner.
  <info>float</info>     <strong>$lly</strong>       The y-coordinate of the lower left corner.
  <info>float</info>     <strong>$urx</strong>       The x-coordinate of the upper right corner.
  <info>float</info>     <strong>$ury</strong>       The y-coordinate of the upper right corner.
  <info>string</info>    <strong>$filename</strong>  The path of the program to be started, when the link is clicked on.

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

<comment>See Also:</comment>
   * <strong>ps_add_locallink()</strong>
   * <strong>ps_add_pdflink()</strong>
   * <strong>ps_add_weblink()</strong>


id: ps_add_locallink
type: function
doc:
<comment>Description:</comment>
  Adds link to a page in the same document
  
  Places a hyperlink at the given position pointing to a page in the same document. Clicking on the
  link will jump to the given page. The first page in a document has number 1.
  
  The hyperlink's source position is a rectangle with its lower left corner at (<strong>$llx</strong>, <strong>$lly</strong>) and its
  upper right corner at (<strong>$urx</strong>, <strong>$ury</strong>). The rectangle has by default a thin blue border.
  
  The note will not be visible if the document
  is printed or viewed but it will show up if the document is converted to
  pdf by either Acrobat Distiller™ or Ghostview.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$llx</strong>    The x-coordinate of the lower left corner.
  <info>float</info>     <strong>$lly</strong>    The y-coordinate of the lower left corner.
  <info>float</info>     <strong>$urx</strong>    The x-coordinate of the upper right corner.
  <info>float</info>     <strong>$ury</strong>    The y-coordinate of the upper right corner.
  <info>int</info>       <strong>$page</strong>   The number of the page displayed when clicking on the link.
  <info>string</info>    <strong>$dest</strong>   The parameter <strong>$dest</strong> determines how the document is being viewed. It can be
                    <return>fitpage</return>, <return>fitwidth</return>, <return>fitheight</return>, or <return>fitbbox</return>.

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

<comment>See Also:</comment>
   * <strong>ps_add_launchlink()</strong>
   * <strong>ps_add_pdflink()</strong>
   * <strong>ps_add_weblink()</strong>


id: ps_add_note
type: function
doc:
<comment>Description:</comment>
  Adds note to current page
  
  Adds a note at a certain position on the page. Notes are like little rectangular sheets with text
  on it, which can be placed anywhere on a page. They are shown either folded or unfolded. If
  folded, the specified icon is used as a placeholder.
  
  The note will not be visible if the document
  is printed or viewed but it will show up if the document is converted to
  pdf by either Acrobat Distiller™ or Ghostview.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>     Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$llx</strong>       The x-coordinate of the lower left corner.
  <info>float</info>     <strong>$lly</strong>       The y-coordinate of the lower left corner.
  <info>float</info>     <strong>$urx</strong>       The x-coordinate of the upper right corner.
  <info>float</info>     <strong>$ury</strong>       The y-coordinate of the upper right corner.
  <info>string</info>    <strong>$contents</strong>  The text of the note.
  <info>string</info>    <strong>$title</strong>     The title of the note as displayed in the header of the note.
  <info>string</info>    <strong>$icon</strong>      The icon shown if the note is folded. This parameter can be set to <return>comment</return>,
                       <return>insert</return>, <return>note</return>, <return>paragraph</return>, <return>newparagraph</return>, <return>key</return>, or <return>help</return>.
  <info>int</info>       <strong>$open</strong>      If <strong>$open</strong> is unequal to zero the note will be shown unfolded after opening the
                       document with a pdf viewer.

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

<comment>See Also:</comment>
   * <strong>ps_add_pdflink()</strong>
   * <strong>ps_add_launchlink()</strong>
   * <strong>ps_add_locallink()</strong>
   * <strong>ps_add_weblink()</strong>


id: ps_add_pdflink
type: function
doc:
<comment>Description:</comment>
  Adds link to a page in a second pdf document
  
  Places a hyperlink at the given position pointing to a second pdf document. Clicking on the link
  will branch to the document at the given page. The first page in a document has number 1.
  
  The hyperlink's source position is a rectangle with its lower left corner at (<strong>$llx</strong>, <strong>$lly</strong>) and its
  upper right corner at (<strong>$urx</strong>, <strong>$ury</strong>). The rectangle has by default a thin blue border.
  
  The note will not be visible if the document
  is printed or viewed but it will show up if the document is converted to
  pdf by either Acrobat Distiller™ or Ghostview.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>     Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$llx</strong>       The x-coordinate of the lower left corner.
  <info>float</info>     <strong>$lly</strong>       The y-coordinate of the lower left corner.
  <info>float</info>     <strong>$urx</strong>       The x-coordinate of the upper right corner.
  <info>float</info>     <strong>$ury</strong>       The y-coordinate of the upper right corner.
  <info>string</info>    <strong>$filename</strong>  The name of the pdf document to be opened when clicking on this link.
  <info>int</info>       <strong>$page</strong>      The page number of the destination pdf document
  <info>string</info>    <strong>$dest</strong>      The parameter <strong>$dest</strong> determines how the document is being viewed. It can be
                       <return>fitpage</return>, <return>fitwidth</return>, <return>fitheight</return>, or <return>fitbbox</return>.

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

<comment>See Also:</comment>
   * <strong>ps_add_launchlink()</strong>
   * <strong>ps_add_locallink()</strong>
   * <strong>ps_add_weblink()</strong>


id: ps_add_weblink
type: function
doc:
<comment>Description:</comment>
  Adds link to a web location
  
  Places a hyperlink at the given position pointing to a web page. The  hyperlink's source position
  is a rectangle with its lower left corner at (<strong>$llx</strong>, <strong>$lly</strong>) and its upper right corner at (<strong>$urx</strong>,
  <strong>$ury</strong>). The rectangle has by default a thin blue border.
  
  The note will not be visible if the document
  is printed or viewed but it will show up if the document is converted to
  pdf by either Acrobat Distiller™ or Ghostview.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$llx</strong>    The x-coordinate of the lower left corner.
  <info>float</info>     <strong>$lly</strong>    The y-coordinate of the lower left corner.
  <info>float</info>     <strong>$urx</strong>    The x-coordinate of the upper right corner.
  <info>float</info>     <strong>$ury</strong>    The y-coordinate of the upper right corner.
  <info>string</info>    <strong>$url</strong>    The url of the hyperlink to be opened when clicking on this link, e.g.
                    <return>http://www.php.net</return>.

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

<comment>See Also:</comment>
   * <strong>ps_add_launchlink()</strong>
   * <strong>ps_add_locallink()</strong>
   * <strong>ps_add_pdflink()</strong>


id: ps_arc
type: function
doc:
<comment>Description:</comment>
  Draws an arc counterclockwise
  
  Draws a portion of a circle with at middle point at (<strong>$x</strong>, <strong>$y</strong>). The arc starts at an angle of <strong>$alpha</strong>
  and ends at an angle of <strong>$beta</strong>. It is drawn counterclockwise (use <strong>ps_arcn()</strong> to draw clockwise). The
  subpath added to the current path starts on the arc at angle <strong>$alpha</strong> and ends on the arc at angle
  <strong>$beta</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x</strong>       The x-coordinate of the circle's middle point.
  <info>float</info>     <strong>$y</strong>       The y-coordinate of the circle's middle point.
  <info>float</info>     <strong>$radius</strong>  The radius of the circle
  <info>float</info>     <strong>$alpha</strong>   The start angle given in degrees.
  <info>float</info>     <strong>$beta</strong>    The end angle given in degrees.

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

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


id: ps_arcn
type: function
doc:
<comment>Description:</comment>
  Draws an arc clockwise
  
  Draws a portion of a circle with at middle point at (<strong>$x</strong>, <strong>$y</strong>). The arc starts at an angle of <strong>$alpha</strong>
  and ends at an angle of <strong>$beta</strong>. It is drawn clockwise (use <strong>ps_arc()</strong> to draw counterclockwise). The
  subpath added to the current path starts on the arc at angle <strong>$beta</strong> and ends on the arc at angle
  <strong>$alpha</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x</strong>       The x-coordinate of the circle's middle point.
  <info>float</info>     <strong>$y</strong>       The y-coordinate of the circle's middle point.
  <info>float</info>     <strong>$radius</strong>  The radius of the circle
  <info>float</info>     <strong>$alpha</strong>   The starting angle given in degrees.
  <info>float</info>     <strong>$beta</strong>    The end angle given in degrees.

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

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


id: ps_begin_page
type: function
doc:
<comment>Description:</comment>
  Start a new page
  
  Starts a new page. Although the parameters <strong>$width</strong> and <strong>$height</strong> imply a different page size for each
  page, this is not possible in PostScript. The first call of <strong>ps_begin_page()</strong> will set the page size
  for the whole document. Consecutive calls will have no effect, except for creating a new page. The
  situation is different if you intent to convert the PostScript document into PDF. This function
  places pdfmarks into the document which can set the size for each page indiviually. The resulting
  PDF document will have different page sizes.
  
  Though PostScript does not know different page sizes, pslib places a bounding box for each page
  into the document. This size is evaluated by some PostScript viewers and will have precedence over
  the BoundingBox in the Header of the document. This can lead to unexpected results when you set a
  BoundingBox whose lower left corner is not (0, 0), because the bounding box of the page will
  always have a lower left corner (0, 0) and overwrites the global setting.
  
  Each page is encapsulated into save/restore. This means, that most of the settings made on one
  page will not be retained on the next page.
  
  If there is up to the first call of <strong>ps_begin_page()</strong> no call of <strong>ps_findfont()</strong>, then the header of
  the PostScript document will be output and the bounding box will be set to the size of the first
  page. The lower left corner of the bounding box is set to (0, 0). If <strong>ps_findfont()</strong> was called
  before, then the header has been output already, and the document will not have a valid bounding
  box. In order to prevent this, one should call <strong>ps_set_info()</strong> to set the info field <return>BoundingBox</return> and
  possibly <return>Orientation</return> before any <strong>ps_findfont()</strong> or <strong>ps_begin_page()</strong> calls.
  
  Up to version 0.2.6 of pslib, this function will always overwrite the BoundingBox and Orientation,
  if it has been set before with <strong>ps_set_info()</strong> and <strong>ps_findfont()</strong> has not been called before.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$width</strong>   The width of the page in pixel, e.g. 596 for A4 format.
  <info>float</info>     <strong>$height</strong>  The height of the page in pixel, e.g. 842 for A4 format.

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

<comment>See Also:</comment>
   * <strong>ps_end_page()</strong>
   * <strong>ps_findfont()</strong>
   * <strong>ps_set_info()</strong>


id: ps_begin_pattern
type: function
doc:
<comment>Description:</comment>
  Start a new pattern
  
  Starts a new pattern. A pattern is like a page containing e.g. a drawing which can be used for
  filling areas. It is used like a color by calling <strong>ps_setcolor()</strong> and setting the color space to
  <return>pattern</return>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>      Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$width</strong>      The width of the pattern in pixel.
  <info>float</info>     <strong>$height</strong>     The height of the pattern in pixel.
  <info></info>          <strong>$x-step</strong>     The distance in pixel of placements of the pattern in horizontal direction.
  <info></info>          <strong>$y-step</strong>     The distance in pixel of placements of the pattern in vertical direction.
  <info>int</info>       <strong>$painttype</strong>  Must be 1 or 2.

<comment>Return:</comment>
  <info>int|false</info>  The identifier of the pattern  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ps_end_pattern()</strong>
   * <strong>ps_setcolor()</strong>
   * <strong>ps_shading_pattern()</strong>


id: ps_begin_template
type: function
doc:
<comment>Description:</comment>
  Start a new template
  
  Starts a new template. A template is called a form in the postscript language. It is created
  similar to a pattern but used like an image. Templates are often used for drawings which are
  placed several times through out the document, e.g. like a company logo. All drawing functions may
  be used within a template. The template will not be drawn until it is placed by <strong>ps_place_image()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$width</strong>   The width of the template in pixel.
  <info>float</info>     <strong>$height</strong>  The height of the template in pixel.

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

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


id: ps_circle
type: function
doc:
<comment>Description:</comment>
  Draws a circle
  
  Draws a circle with its middle point at (<strong>$x</strong>, <strong>$y</strong>). The circle starts and ends at position
  (<strong>$x</strong>+<strong>$radius</strong>, <strong>$y</strong>). If this function is called outside a path it will start a new path. If it is
  called within a path it will add the circle as a subpath. If the last drawing operation does not
  end in point (<strong>$x</strong>+<strong>$radius</strong>, <strong>$y</strong>) then there will be a gap in the path.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x</strong>       The x-coordinate of the circle's middle point.
  <info>float</info>     <strong>$y</strong>       The y-coordinate of the circle's middle point.
  <info>float</info>     <strong>$radius</strong>  The radius of the circle

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

<comment>See Also:</comment>
   * <strong>ps_arc()</strong>
   * <strong>ps_arcn()</strong>


id: ps_clip
type: function
doc:
<comment>Description:</comment>
  Clips drawing to current path
  
  Takes the current path and uses it to define the border of a clipping area. Everything drawn
  outside of that area will not be visible.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

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


id: ps_close
type: function
doc:
<comment>Description:</comment>
  Closes a PostScript document
  
  Closes the PostScript document.
  
  This function writes the trailer of the PostScript document. It also writes the bookmark tree.
  <strong>ps_close()</strong> does not free any resources, which is done by <strong>ps_delete()</strong>.
  
  This function is also called by <strong>ps_delete()</strong> if it has not been called before.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

<comment>See Also:</comment>
   * <strong>ps_open_file()</strong>
   * <strong>ps_delete()</strong>


id: ps_close_image
type: function
doc:
<comment>Description:</comment>
  Closes image and frees memory
  
  Closes an image and frees its resources. Once an image is closed it cannot be used anymore.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>    Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$imageid</strong>  Resource identifier of the image as returned by <strong>ps_open_image()</strong> or
                      <strong>ps_open_image_file()</strong>.

<comment>Return:</comment>
  <info>void|false</info>  Returns <info>null</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ps_open_image()</strong>
   * <strong>ps_open_image_file()</strong>


id: ps_closepath
type: function
doc:
<comment>Description:</comment>
  Closes path
  
  Connects the last point with the first point of a path. The resulting path can be used for
  stroking, filling, clipping, etc..

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

<comment>See Also:</comment>
   * <strong>ps_clip()</strong>
   * <strong>ps_closepath_stroke()</strong>


id: ps_closepath_stroke
type: function
doc:
<comment>Description:</comment>
  Closes and strokes path
  
  Connects the last point with first point of a path and draws the resulting closed line.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

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


id: ps_continue_text
type: function
doc:
<comment>Description:</comment>
  Continue text in next line
  
  Output a text one line below the last line. The line spacing is taken from the value "leading"
  which must be set with <strong>ps_set_value()</strong>. The actual position of the text is determined by the values
  "textx" and "texty" which can be requested with <strong>ps_get_value()</strong>

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$text</strong>   The text to output.

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

<comment>See Also:</comment>
   * <strong>ps_show()</strong>
   * <strong>ps_show_xy()</strong>
   * <strong>ps_show_boxed()</strong>


id: ps_curveto
type: function
doc:
<comment>Description:</comment>
  Draws a curve
  
  Add a section of a cubic Bézier curve described by the three given control points to the current
  path.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x1</strong>     x-coordinate of first control point.
  <info>float</info>     <strong>$y1</strong>     y-coordinate of first control point.
  <info>float</info>     <strong>$x2</strong>     x-coordinate of second control point.
  <info>float</info>     <strong>$y2</strong>     y-coordinate of second control point.
  <info>float</info>     <strong>$x3</strong>     x-coordinate of third control point.
  <info>float</info>     <strong>$y3</strong>     y-coordinate of third control point.

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

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


id: ps_delete
type: function
doc:
<comment>Description:</comment>
  Deletes all resources of a PostScript document
  
  Mainly frees memory used by the document. Also closes a file, if it was not closed before with
  <strong>ps_close()</strong>. You should in any case close the file with <strong>ps_close()</strong> before, because <strong>ps_close()</strong> not
  just closes the file but also outputs a trailor containing PostScript comments like the number of
  pages in the document and adding the bookmark hierarchy.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

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


id: ps_end_page
type: function
doc:
<comment>Description:</comment>
  End a page
  
  Ends a page which was started with <strong>ps_begin_page()</strong>. Ending a page will leave the current drawing
  context, which e.g. requires to reload fonts if they were loading within the page, and to set many
  other drawing parameters like the line width, or color.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

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


id: ps_end_pattern
type: function
doc:
<comment>Description:</comment>
  End a pattern
  
  Ends a pattern which was started with <strong>ps_begin_pattern()</strong>. Once a pattern has been ended, it can be
  used like a color to fill areas.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

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


id: ps_end_template
type: function
doc:
<comment>Description:</comment>
  End a template
  
  Ends a template which was started with <strong>ps_begin_template()</strong>. Once a template has been ended, it can
  be used like an image.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

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


id: ps_fill
type: function
doc:
<comment>Description:</comment>
  Fills the current path
  
  Fills the path constructed with previously called drawing functions like <strong>ps_lineto()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

<comment>See Also:</comment>
   * <strong>ps_fill_stroke()</strong>
   * <strong>ps_stroke()</strong>


id: ps_fill_stroke
type: function
doc:
<comment>Description:</comment>
  Fills and strokes the current path
  
  Fills and draws the path constructed with previously called drawing functions like <strong>ps_lineto()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

<comment>See Also:</comment>
   * <strong>ps_fill()</strong>
   * <strong>ps_stroke()</strong>


id: ps_findfont
type: function
doc:
<comment>Description:</comment>
  Loads a font
  
  Loads a font for later use. Before text is output with a loaded font it must be set with
  <strong>ps_setfont()</strong>. This function needs the adobe font metric file in order to calculate the space used
  up by the characters. A font which is loaded within a page will only be available on that page.
  Fonts which are to be used in the complete document have to be loaded before the first call of
  <strong>ps_begin_page()</strong>. Calling <strong>ps_findfont()</strong> between pages will make that font available for all
  following pages.
  
  The name of the afm file must be <strong>$fontname</strong><return>.afm</return>. If the font shall be embedded the file
  <strong>$fontname</strong><return>.pfb</return> containing the font outline must be present as well.
  
  Calling <strong>ps_findfont()</strong> before the first page requires to output the postscript header which
  includes the BoundingBox for the whole document. Usually the BoundingBox is set with the first
  call of <strong>ps_begin_page()</strong> which now comes after <strong>ps_findfont()</strong>. Consequently the BoundingBox has not
  been set and a warning will be issued when <strong>ps_findfont()</strong> is called. In order to prevent this
  situation, one should call <strong>ps_set_parameter()</strong> to set the BoundingBox before <strong>ps_findfont()</strong> is
  called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>     Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$fontname</strong>  The name of the font.
  <info>string</info>    <strong>$encoding</strong>  <strong>ps_findfont()</strong> will try to load the file passed in the parameter <strong>$encoding</strong>.
                       Encoding files are of the same syntax as those used by dvips(1). They contain
                       a font encoding vector (which is currently not used but must be present) and
                       a list of extra ligatures to extend the list of ligatures derived from the
                       afm file.
                       
                       <strong>$encoding</strong> can be <info>null</info> or the empty string if the default encoding (TeXBase1)
                       shall be used.
                       
                       If the encoding is set to <return>builtin</return> then there will be no reencoding and the
                       font specific encoding will be used. This is very useful with symbol fonts.
  <info>bool</info>      <strong>$embed</strong>     If set to a value &gt;0 the font will be embedded into the document. This
                       requires the font outline (.pfb file) to be present.

<comment>Return:</comment>
  <info>int</info>  Returns the identifier of the font or zero in case of an error. The identifier is a positive
       number.

<comment>See Also:</comment>
   * <strong>ps_begin_page()</strong>
   * <strong>ps_setfont()</strong>


id: ps_get_buffer
type: function
doc:
<comment>Description:</comment>
  Fetches the full buffer containig the generated PS data
  
  This function is not implemented yet. It will always return an empty string. The idea for a later
  implementation is to write the contents of the postscript file into an internal buffer if in
  memory creation is requested, and retrieve the buffer content with this function. Currently,
  documents created in memory are send to the browser without buffering.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

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


id: ps_get_parameter
type: function
doc:
<comment>Description:</comment>
  Gets certain parameters
  
  Gets several parameters which were directly set by <strong>ps_set_parameter()</strong> or indirectly by one of the
  other functions. Parameters are by definition string values. This function cannot be used to
  retrieve resources which were also set by <strong>ps_set_parameter()</strong>.
  
  The parameter <strong>$name</strong> can have the following values.
  
  <return>fontname</return> The name of the currently active font or the font whose identifier is passed in parameter
  <strong>$modifier</strong>. <return>fontencoding</return> The encoding of the currently active font. <return>dottedversion</return> The version of
  the underlying pslib library in the format \<major&gt;.\<minor&gt;.\<subminor&gt; <return>scope</return> The current drawing scope. Can be object, document, null, page, pattern, path, template, prolog, font, glyph. <return>ligaturedisolvechar</return> The character which dissolves a ligature. If your are using a font which contains the ligature `ff' and `|' is the char to dissolve the ligature, then `f|f' will result in two `f' instead of the ligature `ff'. <return>imageencoding</return> The encoding used for encoding images. Can be either <return>hex</return> or <return>85</return>. hex encoding uses two bytes in the postscript file each byte in the image. 85 stand for Ascii85 encoding. <return>linenumbermode</return> Set to <return>paragraph</return> if lines are numbered within a paragraph or <return>box</return> if they are numbered within the surrounding box. <return>linebreak</return> Only used if text is output with <strong>ps_show_boxed()</strong>. If set to <info>true</info> a carriage return will add a line break. <return>parbreak</return> Only used if text is output with <strong>ps_show_boxed()</strong>. If set to <info>true</info> a carriage return will start a new paragraph. <return>hyphenation</return> Only used if text is output with <strong>ps_show_boxed()</strong>. If set to <info>true</info> the paragraph will be hyphenated if a hypen dictionary is set and exists. <return>hyphendict</return> Filename of the dictionary used for hyphenation pattern.
  
  The name of the currently active font or the font whose identifier is passed in parameter
  <strong>$modifier</strong>.
  
  The encoding of the currently active font.
  
  The version of the underlying pslib library in the format \<major&gt;.\<minor&gt;.\<subminor&gt;
  
  The current drawing scope. Can be object, document, null, page, pattern, path, template, prolog,
  font, glyph.
  
  The character which dissolves a ligature. If your are using a font which contains the ligature
  `ff' and `|' is the char to dissolve the ligature, then `f|f' will result in two `f' instead of
  the ligature `ff'.
  
  The encoding used for encoding images. Can be either <return>hex</return> or <return>85</return>. hex encoding uses two bytes in the
  postscript file each byte in the image. 85 stand for Ascii85 encoding.
  
  Set to <return>paragraph</return> if lines are numbered within a paragraph or <return>box</return> if they are numbered within the
  surrounding box.
  
  Only used if text is output with <strong>ps_show_boxed()</strong>. If set to <info>true</info> a carriage return will add a line
  break.
  
  Only used if text is output with <strong>ps_show_boxed()</strong>. If set to <info>true</info> a carriage return will start a
  new paragraph.
  
  Only used if text is output with <strong>ps_show_boxed()</strong>. If set to <info>true</info> the paragraph will be hyphenated
  if a hypen dictionary is set and exists.
  
  Filename of the dictionary used for hyphenation pattern.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>     Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$name</strong>      Name of the parameter.
  <info>float</info>     <strong>$modifier</strong>  An identifier needed if a parameter of a resource is requested, e.g. the size
                       of an image. In such a case the resource id is passed.

<comment>Return:</comment>
  <info>string|false</info>  Returns the value of the parameter  or <info>false</info> on failure.

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


id: ps_get_value
type: function
doc:
<comment>Description:</comment>
  Gets certain values
  
  Gets several values which were set by <strong>ps_set_value()</strong>. Values are by definition float values.
  
  The parameter <strong>$name</strong> can have the following values.
  
  <return>fontsize</return> The size of the currently active font or the font whose identifier is passed in parameter
  <strong>$modifier</strong>. <return>font</return> The currently active font itself. <return>imagewidth</return> The width of the image whose id is
  passed in the parameter <strong>$modifier</strong>. <return>imageheight</return> The height of the image whose id is passed in the
  parameter <strong>$modifier</strong>. <return>capheight</return> The height of a capital M in the currently active font or the font
  whose identifier is passed in parameter <strong>$modifier</strong>. <return>ascender</return> The ascender of the currently active
  font or the font whose identifier is passed in parameter <strong>$modifier</strong>. <return>descender</return> The descender of the
  currently active font or the font whose identifier is passed in parameter <strong>$modifier</strong>. <return>italicangle</return>
  The italicangle of the currently active font or the font whose identifier is passed in parameter
  <strong>$modifier</strong>. <return>underlineposition</return> The underlineposition of the currently active font or the font whose
  identifier is passed in parameter <strong>$modifier</strong>. <return>underlinethickness</return> The underlinethickness of the
  currently active font or the font whose identifier is passed in parameter <strong>$modifier</strong>. <return>textx</return> The
  current x-position for text output. <return>texty</return> The current y-position for text output. <return>textrendering</return>
  The current mode for text rendering. <return>textrise</return> The space by which text is risen above the base
  line. <return>leading</return> The distance between text lines in points. <return>wordspacing</return> The space between words as a
  multiple of the width of a space char. <return>charspacing</return> The space between chars. If charspacing is !=
  0.0 ligatures will always be dissolved. <return>hyphenminchars</return> Minimum number of chars hyphenated at the
  end of a word. <return>parindent</return> Indention of the first n line in a paragraph. <return>numindentlines</return> Number of
  line in a paragraph to indent if parindent != 0.0. <return>parskip</return> Distance between paragraphs.
  <return>linenumberspace</return> Overall space in front of each line for the line number. <return>linenumbersep</return> Space
  between the line and the line number. <return>major</return> The major version number of pslib. <return>minor</return> The minor
  version number of pslib. <return>subminor</return>, <return>revision</return> The subminor version number of pslib.
  
  The size of the currently active font or the font whose identifier is passed in parameter
  <strong>$modifier</strong>.
  
  The currently active font itself.
  
  The width of the image whose id is passed in the parameter <strong>$modifier</strong>.
  
  The height of the image whose id is passed in the parameter <strong>$modifier</strong>.
  
  The height of a capital M in the currently active font or the font whose identifier is passed in
  parameter <strong>$modifier</strong>.
  
  The ascender of the currently active font or the font whose identifier is passed in parameter
  <strong>$modifier</strong>.
  
  The descender of the currently active font or the font whose identifier is passed in parameter
  <strong>$modifier</strong>.
  
  The italicangle of the currently active font or the font whose identifier is passed in parameter
  <strong>$modifier</strong>.
  
  The underlineposition of the currently active font or the font whose identifier is passed in
  parameter <strong>$modifier</strong>.
  
  The underlinethickness of the currently active font or the font whose identifier is passed in
  parameter <strong>$modifier</strong>.
  
  The current x-position for text output.
  
  The current y-position for text output.
  
  The current mode for text rendering.
  
  The space by which text is risen above the base line.
  
  The distance between text lines in points.
  
  The space between words as a multiple of the width of a space char.
  
  The space between chars. If charspacing is != 0.0 ligatures will always be dissolved.
  
  Minimum number of chars hyphenated at the end of a word.
  
  Indention of the first n line in a paragraph.
  
  Number of line in a paragraph to indent if parindent != 0.0.
  
  Distance between paragraphs.
  
  Overall space in front of each line for the line number.
  
  Space between the line and the line number.
  
  The major version number of pslib.
  
  The minor version number of pslib.
  
  The subminor version number of pslib.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>     Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$name</strong>      Name of the value.
  <info>float</info>     <strong>$modifier</strong>  The parameter <strong>$modifier</strong> specifies the resource for which the value is to be
                       retrieved. This can be the id of a font or an image.

<comment>Return:</comment>
  <info>float</info>  Returns the value of the parameter or <info>false</info>.

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


id: ps_hyphenate
type: function
doc:
<comment>Description:</comment>
  Hyphenates a word
  
  Hyphenates the passed word. <strong>ps_hyphenate()</strong> evaluates the value hyphenminchars (set by
  <strong>ps_set_value()</strong>) and the parameter hyphendict (set by <strong>ps_set_parameter()</strong>). hyphendict must be set
  before calling this function.
  
  This function requires the locale category LC_CTYPE to be set properly. This is done when the
  extension is initialized by using the environment variables. On Unix systems read the man page of
  locale for more information.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$text</strong>   <strong>$text</strong> should not contain any non alpha characters. Possible positions for breaks
                    are returned in an array of interger numbers. Each number is the position of the
                    char in  <strong>$text</strong> after which a hyphenation can take place.

<comment>Return:</comment>
  <info>array|false</info>  An array of integers indicating the position of possible breaks in the text  or <info>false</info>
               on failure.

<comment>See Also:</comment>
   * <strong>ps_show_boxed()</strong>
   * locale(1)


id: ps_include_file
type: function
doc:
<comment>Description:</comment>
  Reads an external file with raw PostScript code
  
  This function is
  currently not documented; only its argument list is available.
  
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$file</strong>   

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


id: ps_lineto
type: function
doc:
<comment>Description:</comment>
  Draws a line
  
  Adds a straight line from the current point to the given coordinates to the current path. Use
  <strong>ps_moveto()</strong> to set the starting point of the line.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x</strong>      x-coordinate of the end point of the line.
  <info>float</info>     <strong>$y</strong>      y-coordinate of the end point of the line.

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

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


id: ps_makespotcolor
type: function
doc:
<comment>Description:</comment>
  Create spot color
  
  Creates a spot color from the current fill color. The fill color must be defined in rgb, cmyk or
  gray colorspace. The spot color name can be an arbitrary name. A spot color can be set as any
  color with <strong>ps_setcolor()</strong>. When the document is not printed but displayed by an postscript viewer
  the given color in the specified color space is use.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$name</strong>   Name of the spot color, e.g. Pantone 5565.

<comment>Return:</comment>
  <info>int</info>  The id of the new spot color or 0 in case of an error.

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


id: ps_moveto
type: function
doc:
<comment>Description:</comment>
  Sets current point
  
  Sets the current point to new coordinates. If this is the first call of <strong>ps_moveto()</strong> after a
  previous path has been ended then it will start a new path. If this function is called in the
  middle of a path it will just set the current point and start a subpath.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x</strong>      x-coordinate of the point to move to.
  <info>float</info>     <strong>$y</strong>      y-coordinate of the point to move to.

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

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


id: ps_new
type: function
doc:
<comment>Description:</comment>
  Creates a new PostScript document object
  
  Creates a new document instance. It does not create the file on disk or in memory, it just sets up
  everything. <strong>ps_new()</strong> is usually followed by a call of <strong>ps_open_file()</strong> to actually create the
  postscript document.

<comment>Return:</comment>
  <info>resource|false</info>  Resource of PostScript document or <info>false</info> on failure. The return value is passed to
                  all other functions as the first argument.

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


id: ps_open_file
type: function
doc:
<comment>Description:</comment>
  Opens a file for output
  
  Creates a new file on disk and writes the PostScript document into it. The file will be closed
  when <strong>ps_close()</strong> is called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>     Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$filename</strong>  The name of the postscript file. If <strong>$filename</strong> is not passed the document will
                       be created in memory and all output will go straight to the browser.

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

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


id: ps_open_image
type: function
doc:
<comment>Description:</comment>
  Reads an image for later placement
  
  Reads an image which is already available in memory. The parameter <strong>$source</strong> is currently not
  evaluated and assumed to be <return>memory</return>. The image data is a sequence of pixels starting in th upper
  left corner and ending in the lower right corner. Each pixel consists of <strong>$components</strong> color
  components, and each component has <strong>$bpc</strong> bits.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>       Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$type</strong>        The type of the image. Possible values are <return>png</return>, <return>jpeg</return>, or <return>eps</return>.
  <info>string</info>    <strong>$source</strong>      Not used.
  <info>string</info>    <strong>$data</strong>        The image data.
  <info></info>          <strong>$length</strong>      The length of the image data.
  <info>int</info>       <strong>$width</strong>       The width of the image.
  <info>int</info>       <strong>$height</strong>      The height of the image.
  <info>int</info>       <strong>$components</strong>  The number of components for each pixel. This can be 1 (gray scale images),
                         3 (rgb images), or 4 (cmyk, rgba images).
  <info>int</info>       <strong>$bpc</strong>         Number of bits per component (quite often 8).
  <info>string</info>    <strong>$params</strong>      

<comment>Return:</comment>
  <info>int</info>  Returns identifier of image or zero in case of an error. The identifier is a positive number
       greater than 0.

<comment>See Also:</comment>
   * <strong>ps_open_image_file()</strong>
   * <strong>ps_place_image()</strong>
   * <strong>ps_close_image()</strong>


id: ps_open_image_file
type: function
doc:
<comment>Description:</comment>
  Opens image from file
  
  Loads an image for later use.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>        Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$type</strong>         The type of the image. Possible values are <return>png</return>, <return>jpeg</return>, or <return>eps</return>.
  <info>string</info>    <strong>$filename</strong>     The name of the file containing the image data.
  <info>string</info>    <strong>$stringparam</strong>  Not used.
  <info>int</info>       <strong>$intparam</strong>     Not used.

<comment>Return:</comment>
  <info>int</info>  Returns identifier of image or zero in case of an error. The identifier is a positive number
       greater than 0.

<comment>See Also:</comment>
   * <strong>ps_open_image()</strong>
   * <strong>ps_place_image()</strong>
   * <strong>ps_close_image()</strong>


id: ps_open_memory_image
type: function
doc:
<comment>Description:</comment>
  Takes an GD image and returns an image for placement in a PS document
  
  This function is
  currently not documented; only its argument list is available.
  
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$gd</strong>     

<comment>Return:</comment>
  <info>int</info>  


id: ps_place_image
type: function
doc:
<comment>Description:</comment>
  Places image on the page
  
  Places a formerly loaded image on the page. The image can be scaled. If the image shall be rotated
  as well, you will have to rotate the coordinate system before with <strong>ps_rotate()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>    Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$imageid</strong>  The resource identifier of the image as returned by  <strong>ps_open_image()</strong> or
                      <strong>ps_open_image_file()</strong>.
  <info>float</info>     <strong>$x</strong>        x-coordinate of the lower left corner of the image.
  <info>float</info>     <strong>$y</strong>        y-coordinate of the lower left corner of the image.
  <info>float</info>     <strong>$scale</strong>    The scaling factor for the image. A scale of 1.0 will result in a resolution
                      of 72 dpi, because each pixel is equivalent to 1 point.

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

<comment>See Also:</comment>
   * <strong>ps_open_image()</strong>
   * <strong>ps_open_image_file()</strong>


id: ps_rect
type: function
doc:
<comment>Description:</comment>
  Draws a rectangle
  
  Draws a rectangle with its lower left corner at (<strong>$x</strong>, <strong>$y</strong>). The rectangle starts and ends in its
  lower left corner. If this function is called outside a path it will start a new path. If it is
  called within a path it will add the rectangle as a subpath. If the last drawing operation does
  not end in the lower left corner then there will be a gap in the path.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x</strong>       x-coordinate of the lower left corner of the rectangle.
  <info>float</info>     <strong>$y</strong>       y-coordinate of the lower left corner of the rectangle.
  <info>float</info>     <strong>$width</strong>   The width of the image.
  <info>float</info>     <strong>$height</strong>  The height of the image.

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

<comment>See Also:</comment>
   * <strong>ps_arc()</strong>
   * <strong>ps_cirle()</strong>
   * <strong>ps_lineto()</strong>


id: ps_restore
type: function
doc:
<comment>Description:</comment>
  Restore previously save context
  
  Restores a previously saved graphics context. Any call of <strong>ps_save()</strong> must be accompanied by a call
  to <strong>ps_restore()</strong>. All coordinate transformations, line style settings, color settings, etc. are
  being restored to the state before the call of <strong>ps_save()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

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


id: ps_rotate
type: function
doc:
<comment>Description:</comment>
  Sets rotation factor
  
  Sets the rotation of the coordinate system.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$rot</strong>    Angle of rotation in degree.

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

<comment>See Also:</comment>
   * <strong>ps_scale()</strong>
   * <strong>ps_translate()</strong>


id: ps_save
type: function
doc:
<comment>Description:</comment>
  Save current context
  
  Saves the current graphics context, containing colors, translation and rotation settings and some
  more. A saved context can be restored with <strong>ps_restore()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

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


id: ps_scale
type: function
doc:
<comment>Description:</comment>
  Sets scaling factor
  
  Sets horizontal and vertical scaling of the coordinate system.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x</strong>      Scaling factor in horizontal direction.
  <info>float</info>     <strong>$y</strong>      Scaling factor in vertical direction.

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

<comment>See Also:</comment>
   * <strong>ps_rotate()</strong>
   * <strong>ps_translate()</strong>


id: ps_set_border_color
type: function
doc:
<comment>Description:</comment>
  Sets color of border for annotations
  
  Links added with one of the functions <strong>ps_add_weblink()</strong>, <strong>ps_add_pdflink()</strong>, etc. will be displayed
  with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf
  viewer. This rectangle is not visible in the postscript document. This function sets the color of
  the rectangle's border line.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$red</strong>    The red component of the border color.
  <info>float</info>     <strong>$green</strong>  The green component of the border color.
  <info>float</info>     <strong>$blue</strong>   The blue component of the border color.

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

<comment>See Also:</comment>
   * <strong>ps_set_border_dash()</strong>
   * <strong>ps_set_border_style()</strong>


id: ps_set_border_dash
type: function
doc:
<comment>Description:</comment>
  Sets length of dashes for border of annotations
  
  Links added with one of the functions <strong>ps_add_weblink()</strong>, <strong>ps_add_pdflink()</strong>, etc. will be displayed
  with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf
  viewer. This rectangle is not visible in the postscript document. This function sets the length of
  the black and white portion of a dashed border line.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$black</strong>  The length of the dash.
  <info>float</info>     <strong>$white</strong>  The length of the gap between dashes.

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

<comment>See Also:</comment>
   * <strong>ps_set_border_color()</strong>
   * <strong>ps_set_border_style()</strong>


id: ps_set_border_style
type: function
doc:
<comment>Description:</comment>
  Sets border style of annotations
  
  Links added with one of the functions <strong>ps_add_weblink()</strong>, <strong>ps_add_pdflink()</strong>, etc. will be displayed
  with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf
  viewer. This rectangle is not visible in the postscript document. This function sets the
  appearance and width of the border line.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$style</strong>  <strong>$style</strong> can be <return>solid</return> or <return>dashed</return>.
  <info>float</info>     <strong>$width</strong>  The line width of the border.

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

<comment>See Also:</comment>
   * <strong>ps_set_border_color()</strong>
   * <strong>ps_set_border_dash()</strong>


id: ps_set_info
type: function
doc:
<comment>Description:</comment>
  Sets information fields of document
  
  Sets certain information fields of the document. This fields will be shown as a comment in the
  header of the PostScript file. If the document is converted to pdf this fields will also be used
  for the document information.
  
  The <return>BoundingBox</return> is usually set to the value given to the first page. This only works if
  <strong>ps_findfont()</strong> has not been called before. In such cases the BoundingBox would be left unset unless
  you set it explicitly with this function.
  
  This function will have no effect anymore when the header of the postscript file has been already
  written. It must be called before the first page or the first call of <strong>ps_findfont()</strong>.

<comment>Param:</comment>
  <info></info>        <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>  <strong>$key</strong>    The name of the information field to set. The values which can be set are
                  <return>Keywords</return>, <return>Subject</return>, <return>Title</return>, <return>Creator</return>, <return>Author</return>, <return>BoundingBox</return>, and <return>Orientation</return>. Be aware
                  that some of them has a meaning to PostScript viewers.
  <info></info>        <strong>$value</strong>  The value of the information field. The field <return>Orientation</return> can be set to either
                  <return>Portrait</return> or <return>Landscape</return>. The <return>BoundingBox</return> is a string consisting of four numbers. The
                  first two numbers are the coordinates of the lower left corner of the page. The
                  last two numbers are the coordinates of the upper right corner.
                  
                  Up to version 0.2.6 of pslib, the BoundingBox and Orientation will be overwritten
                  by <strong>ps_begin_page()</strong>, unless <strong>ps_findfont()</strong> has been called before.

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

<comment>See Also:</comment>
   * <strong>ps_findfont()</strong>
   * <strong>ps_begin_page()</strong>


id: ps_set_parameter
type: function
doc:
<comment>Description:</comment>
  Sets certain parameters
  
  Sets several parameters which are used by many functions. Parameters are by definition string
  values.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$name</strong>   For a list of possible names see <strong>ps_get_parameter()</strong>.
  <info>string</info>    <strong>$value</strong>  The value of the parameter.

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

<comment>See Also:</comment>
   * <strong>ps_get_parameters()</strong>
   * <strong>ps_set_value()</strong>


id: ps_set_text_pos
type: function
doc:
<comment>Description:</comment>
  Sets position for text output
  
  Set the position for the next text output. You may alternatively set the x and y value separately
  by calling <strong>ps_set_value()</strong> and choosing <return>textx</return> respectively <return>texty</return> as the value name.
  
  If you want to output text at a certain position it is more convenient to use <strong>ps_show_xy()</strong> instead
  of setting the text position and calling <strong>ps_show()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x</strong>      x-coordinate of the new text position.
  <info>float</info>     <strong>$y</strong>      y-coordinate of the new text position.

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

<comment>See Also:</comment>
   * <strong>ps_set_value()</strong>
   * <strong>ps_show()</strong>


id: ps_set_value
type: function
doc:
<comment>Description:</comment>
  Sets certain values
  
  Sets several values which are used by many functions. Parameters are by definition float values.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$name</strong>   The <strong>$name</strong> can be one of the following: textrendering The way how text is shown.
                    textx The x coordinate for text output. texty The y coordinate for text output.
                    wordspacing The distance between words relative to the width of a space. leading
                    The distance between lines in pixels.
                    
                    The way how text is shown.
                    
                    The x coordinate for text output.
                    
                    The y coordinate for text output.
                    
                    The distance between words relative to the width of a space.
                    
                    The distance between lines in pixels.
  <info>float</info>     <strong>$value</strong>  The value of the parameter.

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

<comment>See Also:</comment>
   * <strong>ps_get_value()</strong>
   * <strong>ps_set_parameter()</strong>


id: ps_setcolor
type: function
doc:
<comment>Description:</comment>
  Sets current color
  
  Sets the color for drawing, filling, or both.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>       Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$type</strong>        The parameter <strong>$type</strong> can be  <return>both</return>, <return>fill</return>, or <return>fillstroke</return>.
  <info>string</info>    <strong>$colorspace</strong>  The colorspace should be one of <return>gray</return>, <return>rgb</return>, <return>cmyk</return>,  <return>spot</return>, <return>pattern</return>. Depending
                         on the colorspace either only the first, the first three or all parameters
                         will be used.
  <info>float</info>     <strong>$c1</strong>          Depending on the colorspace this is either the red component (rgb), the
                         cyan component (cmyk), the gray value (gray), the identifier of the spot
                         color or the identifier of the pattern.
  <info>float</info>     <strong>$c2</strong>          Depending on the colorspace this is either the green component (rgb), the
                         magenta component (cmyk).
  <info>float</info>     <strong>$c3</strong>          Depending on the colorspace this is either the blue component (rgb), the
                         yellow component (cmyk).
  <info>float</info>     <strong>$c4</strong>          This must only be set in cmyk colorspace and specifies the black component.

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


id: ps_setdash
type: function
doc:
<comment>Description:</comment>
  Sets appearance of a dashed line
  
  Sets the length of the black and white portions of a dashed line.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$on</strong>     The length of the dash.
  <info>float</info>     <strong>$off</strong>    The length of the gap between dashes.

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

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


id: ps_setflat
type: function
doc:
<comment>Description:</comment>
  Sets flatness
  
  This function is
  currently not documented; only its argument list is available.
  
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$value</strong>  The <strong>$value</strong> must be between 0.2 and 1.

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


id: ps_setfont
type: function
doc:
<comment>Description:</comment>
  Sets font to use for following output
  
  Sets a font, which has to be loaded before with <strong>ps_findfont()</strong>. Outputting text without setting a
  font results in an error.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$fontid</strong>  The font identifier as returned by <strong>ps_findfont()</strong>.
  <info>float</info>     <strong>$size</strong>    The size of the font.

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

<comment>See Also:</comment>
   * <strong>ps_findfont()</strong>
   * <strong>ps_set_text_pos()</strong> for an example.


id: ps_setgray
type: function
doc:
<comment>Description:</comment>
  Sets gray value
  
  Sets the gray value for all following drawing operations.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$gray</strong>   The value must be between 0 (white) and 1 (black).

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

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


id: ps_setlinecap
type: function
doc:
<comment>Description:</comment>
  Sets appearance of line ends
  
  Sets how line ends look like.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$type</strong>   The type of line ends. Possible values are <return>PS_LINECAP_BUTT</return>, <return>PS_LINECAP_ROUND</return>, or
                    <return>PS_LINECAP_SQUARED</return>.

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

<comment>See Also:</comment>
   * <strong>ps_setlinejoin()</strong>
   * <strong>ps_setlinewidth()</strong>
   * <strong>ps_setmiterlimit()</strong>


id: ps_setlinejoin
type: function
doc:
<comment>Description:</comment>
  Sets how contected lines are joined
  
  Sets how lines are joined.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$type</strong>   The way lines are joined. Possible values are <return>PS_LINEJOIN_MITER</return>,
                    <return>PS_LINEJOIN_ROUND</return>, or <return>PS_LINEJOIN_BEVEL</return>.

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

<comment>See Also:</comment>
   * <strong>ps_setlinecap()</strong>
   * <strong>ps_setlinewidth()</strong>
   * <strong>ps_setmiterlimit()</strong>


id: ps_setlinewidth
type: function
doc:
<comment>Description:</comment>
  Sets width of a line
  
  Sets the line width for all following drawing operations.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$width</strong>  The width of lines in points.

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

<comment>See Also:</comment>
   * <strong>ps_setlinecap()</strong>
   * <strong>ps_setlinejoin()</strong>
   * <strong>ps_setmiterlimit()</strong>


id: ps_setmiterlimit
type: function
doc:
<comment>Description:</comment>
  Sets the miter limit
  
  If two lines join in a small angle and the line join is set to <return>PS_LINEJOIN_MITER</return>, then the
  resulting spike will be very long. The miter limit is the maximum ratio of the miter length (the
  length of the spike) and the line width.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$value</strong>  The maximum ratio between the miter length and the line width. Larger values
                    (&gt; 10) will result in very long spikes when two lines meet in a small angle.
                    Keep the default unless you know what you are doing.

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

<comment>See Also:</comment>
   * <strong>ps_setlinecap()</strong>
   * <strong>ps_setlinejoin()</strong>
   * <strong>ps_setlinewidth()</strong>


id: ps_setoverprintmode
type: function
doc:
<comment>Description:</comment>
  Sets overprint mode
  
  This function is
  currently not documented; only its argument list is available.
  
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$mode</strong>   

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


id: ps_setpolydash
type: function
doc:
<comment>Description:</comment>
  Sets appearance of a dashed line
  
  Sets the length of the black and white portions of a dashed line. <strong>ps_setpolydash()</strong> is used to set
  more complicated dash patterns.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$arr</strong>    <strong>$arr</strong> is a list of length elements alternately for the black and white portion.

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

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


id: ps_shading
type: function
doc:
<comment>Description:</comment>
  Creates a shading for later use
  
  Creates a shading, which can be used by <strong>ps_shfill()</strong> or <strong>ps_shading_pattern()</strong>.
  
  The color of the shading can be in any color space except for <return>pattern</return>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>           Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$type</strong>            The type of shading can be either <return>radial</return> or <return>axial</return>. Each shading starts
                             with the current fill color and ends with the given color values passed
                             in the parameters <strong>$c1</strong> to <strong>$c4</strong> (see <strong>ps_setcolor()</strong> for their meaning).
  <info></info>          <strong>$x0, x1, y0, y1</strong>  The coordinates <strong>$x0</strong>, <strong>$y0</strong>, <strong>$x1</strong>, <strong>$y1</strong> are the start and end point of the
                             shading. If the type of shading is <return>radial</return> the two points are the middle
                             points of a starting and ending circle.
  <info></info>          <strong>$c1, c2, c3, c4</strong>  See <strong>ps_setcolor()</strong> for their meaning.
  <info>string</info>    <strong>$optlist</strong>         If the shading is of type <return>radial</return> the <strong>$optlist</strong> must also contain the
                             parameters <return>r0</return> and <return>r1</return> with the radius of the start and end circle.

<comment>Return:</comment>
  <info>int|false</info>  Returns the identifier of the pattern  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ps_shading_pattern()</strong>
   * <strong>ps_shfill()</strong>


id: ps_shading_pattern
type: function
doc:
<comment>Description:</comment>
  Creates a pattern based on a shading
  
  Creates a pattern based on a shading, which has to be created before with <strong>ps_shading()</strong>. Shading
  patterns can be used like regular patterns.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>      Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$shadingid</strong>  The identifier of a shading previously created with <strong>ps_shading()</strong>.
  <info>string</info>    <strong>$optlist</strong>    This argument is not currently used.

<comment>Return:</comment>
  <info>int|false</info>  The identifier of the pattern  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ps_shading()</strong>
   * <strong>ps_shfill()</strong>


id: ps_shfill
type: function
doc:
<comment>Description:</comment>
  Fills an area with a shading
  
  Fills an area with a shading, which has to be created before with <strong>ps_shading()</strong>. This is an
  alternative way to creating a pattern from a shading <strong>ps_shading_pattern()</strong> and using the pattern as
  the filling color.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>      Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$shadingid</strong>  The identifier of a shading previously created with <strong>ps_shading()</strong>.

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

<comment>See Also:</comment>
   * <strong>ps_shading()</strong>
   * <strong>ps_shading_pattern()</strong>


id: ps_show
type: function
doc:
<comment>Description:</comment>
  Output text
  
  Output a text at the current text position. The text position can be set by storing the x and y
  coordinates into the values <return>textx</return> and <return>texty</return> with the function <strong>ps_set_value()</strong>. The function will
  issue an error if a font was not set before with <strong>ps_setfont()</strong>.
  
  <strong>ps_show()</strong> evaluates the following parameters and values as set by <strong>ps_set_parameter()</strong> and
  <strong>ps_set_value()</strong>.
  
  Distance between two consecutive glyphs. If this value is unequal to zero then all ligatures will
  be resolved. Values less than zero are allowed.
  
  Setting this parameter to "false" will turn off kerning. Kerning is turned on by default.
  
  Setting this parameter to "false" will turn off the use of ligatures.  Ligatures are turned on by
  default.
  
  Setting this parameter to "true" will turn on underlining. Underlining is turned off by default.
  
  Setting this parameter to "true" will turn on overlining. Overlining is turned off by default.
  
  Setting this parameter to "true" will turn on striking out. Striking out is turned off by default.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$text</strong>   The text to be output.

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

<comment>See Also:</comment>
   * <strong>ps_continue_text()</strong>
   * <strong>ps_show_xy()</strong>
   * <strong>ps_setfont()</strong>


id: ps_show2
type: function
doc:
<comment>Description:</comment>
  Output a text at current position
  
  Output text at the current position. Do not print more than <strong>$len</strong> characters.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$text</strong>   The text to be output.
  <info>int</info>       <strong>$len</strong>    The maximum number of characters to print.

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


id: ps_show_boxed
type: function
doc:
<comment>Description:</comment>
  Output text in a box
  
  Outputs a text in a given box. The lower left corner of the box is at (<strong>$left</strong>, <strong>$bottom</strong>). Line
  breaks will be inserted where needed. Multiple spaces are treated as one. Tabulators are treated
  as spaces.
  
  The text will be hyphenated if the parameter <strong>$hyphenation</strong> is set to <info>true</info> and the parameter
  <strong>$hyphendict</strong> contains a valid filename for a hyphenation file. The line spacing is taken from the
  value <return>leading</return>. Paragraphs can be separated by an empty line just like in TeX. If the value
  <return>parindent</return> is set to value &gt; 0.0 then the first n lines will be indented. The number n of lines
  is set by the parameter <return>numindentlines</return>. In order to prevent indenting of the first m paragraphs
  set the value <return>parindentskip</return> to a positive number.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>       Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$text</strong>        The text to be output into the given box.
  <info>float</info>     <strong>$left</strong>        x-coordinate of the lower left corner of the box.
  <info>float</info>     <strong>$bottom</strong>      y-coordinate of the lower left corner of the box.
  <info>float</info>     <strong>$width</strong>       Width of the box.
  <info>float</info>     <strong>$height</strong>      Height of the box.
  <info>string</info>    <strong>$hmode</strong>       The parameter <strong>$hmode</strong> can be <return>justify</return>, <return>fulljustify</return>, <return>right</return>, <return>left</return>, or <return>center</return>.
                         The difference of <return>justify</return> and <return>fulljustify</return> just affects the last line of the
                         box. In <return>fulljustify</return> mode the last line will be left and right justified
                         unless this is also the last line of paragraph. In <return>justify</return> mode it will
                         always be left justified.
  <info>string</info>    <strong>$feature</strong>     
  <info></info>          <strong>$hyphendict</strong>  Set to <info>true</info> in order to turn hyphenation on. This requires a dictionary to
                         be set with the parameter <strong>$hyphendict</strong>. Defaults to <info>false</info>.

<comment>Return:</comment>
  <info>int</info>  Number of characters that could not be written.

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


id: ps_show_xy
type: function
doc:
<comment>Description:</comment>
  Output text at given position
  
  Output a text at the given text position.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$text</strong>   The text to be output.
  <info>float</info>     <strong>$x</strong>      x-coordinate of the lower left corner of the box surrounding the text.
  <info>float</info>     <strong>$y</strong>      y-coordinate of the lower left corner of the box surrounding the text.

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

<comment>See Also:</comment>
   * <strong>ps_continue_text()</strong>
   * <strong>ps_show()</strong>


id: ps_show_xy2
type: function
doc:
<comment>Description:</comment>
  Output text at position
  
  This function is
  currently not documented; only its argument list is available.
  
  
  This function is
  currently not documented; only its argument list is available.

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


id: ps_string_geometry
type: function
doc:
<comment>Description:</comment>
  Gets geometry of a string
  
  This function is similar to <strong>ps_stringwidth()</strong> but returns an array of dimensions containing the
  width, ascender, and descender of the text.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$text</strong>    The text for which the geometry is to be calculated.
  <info>int</info>       <strong>$fontid</strong>  The identifier of the font to be used. If not font is specified the current
                     font will be used.
  <info>float</info>     <strong>$size</strong>    The size of the font. If no size is specified the current size is used.

<comment>Return:</comment>
  <info>array</info>  An array of the dimensions of a string. The element 'width' contains the width of the
         string as returned by <strong>ps_stringwidth()</strong>. The element 'descender' contains the maximum
         descender and 'ascender' the maximum ascender of the string.

<comment>See Also:</comment>
   * <strong>ps_continue_text()</strong>
   * <strong>ps_stringwidth()</strong>


id: ps_stringwidth
type: function
doc:
<comment>Description:</comment>
  Gets width of a string
  
  Calculates the width of a string in points if it was output in the given font and font size. This
  function needs an Adobe font metrics file to calculate the precise width. If kerning is turned on,
  it will be taken into account.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string</info>    <strong>$text</strong>    The text for which the width is to be calculated.
  <info>int</info>       <strong>$fontid</strong>  The identifier of the font to be used. If not font is specified the current
                     font will be used.
  <info>float</info>     <strong>$size</strong>    The size of the font. If no size is specified the current size is used.

<comment>Return:</comment>
  <info>float</info>  Width of a string in points.

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


id: ps_stroke
type: function
doc:
<comment>Description:</comment>
  Draws the current path
  
  Draws the path constructed with previously called drawing functions like <strong>ps_lineto()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.

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

<comment>See Also:</comment>
   * <strong>ps_closepath_stroke()</strong>
   * <strong>ps_fill()</strong>
   * <strong>ps_fill_stroke()</strong>


id: ps_symbol
type: function
doc:
<comment>Description:</comment>
  Output a glyph
  
  Output the glyph at position <strong>$ord</strong> in the font encoding vector of the current font. The font
  encoding for a font can be set when loading the font with <strong>ps_findfont()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$ord</strong>    The position of the glyph in the font encoding vector.

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

<comment>See Also:</comment>
   * <strong>ps_symbol_name()</strong>
   * <strong>ps_symbol_width()</strong>


id: ps_symbol_name
type: function
doc:
<comment>Description:</comment>
  Gets name of a glyph
  
  This function needs an Adobe font metrics file to know which glyphs are available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$ord</strong>     The parameter <strong>$ord</strong> is the position of the glyph in the font encoding vector.
  <info>int</info>       <strong>$fontid</strong>  The identifier of the font to be used. If not font is specified the current
                     font will be used.

<comment>Return:</comment>
  <info>string</info>  The name of a glyph in the given font.

<comment>See Also:</comment>
   * <strong>ps_symbol()</strong>
   * <strong>ps_symbol_width()</strong>


id: ps_symbol_width
type: function
doc:
<comment>Description:</comment>
  Gets width of a glyph
  
  Calculates the width of a glyph in points if it was output in the given font and font size.  This
  function needs an Adobe font metrics file to calculate the precise width.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>   Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int</info>       <strong>$ord</strong>     The position of the glyph in the font encoding vector.
  <info>int</info>       <strong>$fontid</strong>  The identifier of the font to be used. If not font is specified the current
                     font will be used.
  <info>float</info>     <strong>$size</strong>    The size of the font. If no size is specified the current size is used.

<comment>Return:</comment>
  <info>float</info>  The width of a glyph in points.

<comment>See Also:</comment>
   * <strong>ps_symbol()</strong>
   * <strong>ps_symbol_name()</strong>


id: ps_translate
type: function
doc:
<comment>Description:</comment>
  Sets translation
  
  Sets a new initial point of the coordinate system.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>float</info>     <strong>$x</strong>      x-coordinate of the origin of the translated coordinate system.
  <info>float</info>     <strong>$y</strong>      y-coordinate of the origin of the translated coordinate system.

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

<comment>See Also:</comment>
   * <strong>ps_scale()</strong>
   * <strong>ps_rotate()</strong>


id: pspell_add_to_personal
type: function
doc:
<comment>Description:</comment>
  Add the word to a personal wordlist
  
  <strong>pspell_add_to_personal()</strong> adds a word to the personal wordlist. If you used <strong>pspell_new_config()</strong>
  with <strong>pspell_config_personal()</strong> to open the dictionary, you can save the wordlist later with
  <strong>pspell_save_wordlist()</strong>.

<comment>Param:</comment>
  <info>PSpell\Dictionary</info>  <strong>$dictionary</strong>  An <class>PSpell\Dictionary</class> instance.
  <info>string</info>             <strong>$word</strong>        The added word.

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


id: pspell_add_to_session
type: function
doc:
<comment>Description:</comment>
  Add the word to the wordlist in the current session
  
  <strong>pspell_add_to_session()</strong> adds a word to the wordlist associated with the current session. It is
  very similar to <strong>pspell_add_to_personal()</strong>

<comment>Param:</comment>
  <info>PSpell\Dictionary</info>  <strong>$dictionary</strong>  An <class>PSpell\Dictionary</class> instance.
  <info>string</info>             <strong>$word</strong>        The added word.

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


id: pspell_check
type: function
doc:
<comment>Description:</comment>
  Check a word
  
  <strong>pspell_check()</strong> checks the spelling of a word.

<comment>Param:</comment>
  <info>PSpell\Dictionary</info>  <strong>$dictionary</strong>  An <class>PSpell\Dictionary</class> instance.
  <info>string</info>             <strong>$word</strong>        The tested word.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the spelling is correct, <info>false</info> if not.


id: pspell_clear_session
type: function
doc:
<comment>Description:</comment>
  Clear the current session
  
  <strong>pspell_clear_session()</strong> clears the current session. The current wordlist becomes blank, and, for
  example, if you try to save it with <strong>pspell_save_wordlist()</strong>, nothing happens.

<comment>Param:</comment>
  <info>PSpell\Dictionary</info>  <strong>$dictionary</strong>  An <class>PSpell\Dictionary</class> instance.

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


id: pspell_config_create
type: function
doc:
<comment>Description:</comment>
  Create a config used to open a dictionary
  
  Create a config used to open a dictionary.
  
  <strong>pspell_config_create()</strong> has a very similar syntax to <strong>pspell_new()</strong>. In fact, using
  <strong>pspell_config_create()</strong> immediately followed by <strong>pspell_new_config()</strong> will produce the exact same
  result. However, after creating a new config, you can also use <strong>pspell_config_*()</strong> functions before
  calling <strong>pspell_new_config()</strong> to take advantage of some advanced functionality.
  
  For more information and examples, check out inline manual pspell website:http://aspell.net/.

<comment>Param:</comment>
  <info>string</info>  <strong>$language</strong>  The language parameter is the language code which consists of the two letter
                     ISO 639 language code and an optional two letter ISO 3166 country code after a
                     dash or underscore.
  <info>string</info>  <strong>$spelling</strong>  The spelling parameter is the requested spelling for languages with more than
                     one spelling such as English. Known values are 'american', 'british', and
                     'canadian'.
  <info>string</info>  <strong>$jargon</strong>    The jargon parameter contains extra information to distinguish two different
                     words lists that have the same language and spelling parameters.
  <info>string</info>  <strong>$encoding</strong>  The encoding parameter is the encoding that words are expected to be in.  Valid
                     values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine
                     unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be
                     careful when using.

<comment>Return:</comment>
  <info>PSpell\Config</info>  Returns an <class>PSpell\Config</class> instance.


id: pspell_config_data_dir
type: function
doc:
<comment>Description:</comment>
  Location of language data files
  
  This function is
  currently not documented; only its argument list is available.
  
  
  This function is
  currently not documented; only its argument list is available.

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


id: pspell_config_dict_dir
type: function
doc:
<comment>Description:</comment>
  Location of the main word list
  
  This function is
  currently not documented; only its argument list is available.
  
  
  This function is
  currently not documented; only its argument list is available.

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


id: pspell_config_ignore
type: function
doc:
<comment>Description:</comment>
  Ignore words less than N characters long
  
  <strong>pspell_config_ignore()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>. This
  function allows short words to be skipped by the spell checker.

<comment>Param:</comment>
  <info>PSpell\Config</info>  <strong>$config</strong>      An <class>PSpell\Config</class> instance.
  <info>int</info>            <strong>$min_length</strong>  Words less than <strong>$min_length</strong> characters will be skipped.

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


id: pspell_config_mode
type: function
doc:
<comment>Description:</comment>
  Change the mode number of suggestions returned
  
  <strong>pspell_config_mode()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>. This function
  determines how many suggestions will be returned by <strong>pspell_suggest()</strong>.

<comment>Param:</comment>
  <info>PSpell\Config</info>  <strong>$config</strong>  An <class>PSpell\Config</class> instance.
  <info>int</info>            <strong>$mode</strong>    The mode parameter is the mode in which spellchecker will work. There are
                          several modes available: <info>PSPELL_FAST</info> - Fast mode (least number of
                          suggestions) <info>PSPELL_NORMAL</info> - Normal mode (more suggestions)
                          <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of suggestions)
                          
                          <info>PSPELL_FAST</info> - Fast mode (least number of suggestions)
                          
                          <info>PSPELL_NORMAL</info> - Normal mode (more suggestions)
                          
                          <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of suggestions)

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


id: pspell_config_personal
type: function
doc:
<comment>Description:</comment>
  Set a file that contains personal wordlist
  
  Set a file that contains personal wordlist. The personal wordlist will be loaded and used in
  addition to the standard one after you call <strong>pspell_new_config()</strong>. The file is also the file where
  <strong>pspell_save_wordlist()</strong> will save personal wordlist to.
  
  <strong>pspell_config_personal()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>.

<comment>Param:</comment>
  <info>PSpell\Config</info>  <strong>$config</strong>    An <class>PSpell\Config</class> instance.
  <info>string</info>         <strong>$filename</strong>  The personal wordlist. If the file does not exist, it will be created.
                            The file should be writable by whoever PHP runs as (e.g. nobody).

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


id: pspell_config_repl
type: function
doc:
<comment>Description:</comment>
  Set a file that contains replacement pairs
  
  Set a file that contains replacement pairs.
  
  The replacement pairs improve the quality of the spellchecker. When a word is misspelled, and a
  proper suggestion was not found in the list, <strong>pspell_store_replacement()</strong> can be used to store a
  replacement pair and then <strong>pspell_save_wordlist()</strong> to save the wordlist along with the replacement
  pairs.
  
  <strong>pspell_config_repl()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>.

<comment>Param:</comment>
  <info>PSpell\Config</info>  <strong>$config</strong>    An <class>PSpell\Config</class> instance.
  <info>string</info>         <strong>$filename</strong>  The file should be writable by whoever PHP runs as (e.g. nobody).

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


id: pspell_config_runtogether
type: function
doc:
<comment>Description:</comment>
  Consider run-together words as valid compounds
  
  This function determines whether run-together words will be treated as legal compounds.  That is,
  "thecat" will be a legal compound, although there should be a space between the two words.
  Changing this setting only affects the results returned by <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will
  still return suggestions.
  
  <strong>pspell_config_runtogether()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>.

<comment>Param:</comment>
  <info>PSpell\Config</info>  <strong>$config</strong>  An <class>PSpell\Config</class> instance.
  <info>bool</info>           <strong>$allow</strong>   <info>true</info> if run-together words should be treated as legal compounds, <info>false</info>
                          otherwise.

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


id: pspell_config_save_repl
type: function
doc:
<comment>Description:</comment>
  Determine whether to save a replacement pairs list
    along with the wordlist
  
  <strong>pspell_config_save_repl()</strong> determines whether <strong>pspell_save_wordlist()</strong> will save the replacement
  pairs along with the wordlist. Usually there is no need to use this function because if
  <strong>pspell_config_repl()</strong> is used, the replacement pairs will be saved by <strong>pspell_save_wordlist()</strong>
  anyway, and if it is not, the replacement pairs will not be saved.
  
  <strong>pspell_config_save_repl()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>.

<comment>Param:</comment>
  <info>PSpell\Config</info>  <strong>$config</strong>  An <class>PSpell\Config</class> instance.
  <info>bool</info>           <strong>$save</strong>    <info>true</info> if replacement pairs should be saved, <info>false</info> otherwise.

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


id: pspell_new
type: function
doc:
<comment>Description:</comment>
  Load a new dictionary
  
  <strong>pspell_new()</strong> opens up a new dictionary and returns an <class>PSpell\Dictionary</class> instance for use in other
  pspell functions.
  
  For more information and examples, check out inline manual pspell website:http://aspell.net/.

<comment>Param:</comment>
  <info>string</info>  <strong>$language</strong>  The language parameter is the language code which consists of the two letter
                     ISO 639 language code and an optional two letter ISO 3166 country code after a
                     dash or underscore.
  <info>string</info>  <strong>$spelling</strong>  The spelling parameter is the requested spelling for languages with more than
                     one spelling such as English. Known values are 'american', 'british', and
                     'canadian'.
  <info>string</info>  <strong>$jargon</strong>    The jargon parameter contains extra information to distinguish two different
                     words lists that have the same language and spelling parameters.
  <info>string</info>  <strong>$encoding</strong>  The encoding parameter is the encoding that words are expected to be in.  Valid
                     values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine
                     unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be
                     careful when using.
  <info>int</info>     <strong>$mode</strong>      The mode parameter is the mode in which spellchecker will work. There are
                     several modes available: <info>PSPELL_FAST</info> - Fast mode (least number of suggestions)
                     <info>PSPELL_NORMAL</info> - Normal mode (more suggestions) <info>PSPELL_BAD_SPELLERS</info> - Slow mode
                     (a lot of suggestions) <info>PSPELL_RUN_TOGETHER</info> - Consider run-together words as
                     legal compounds.  That is, "thecat" will be a legal compound, although there
                     should be a space between the two words. Changing this setting only affects the
                     results returned by <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will still return
                     suggestions.  Mode is a bitmask constructed from different constants listed
                     above. However, <info>PSPELL_FAST</info>, <info>PSPELL_NORMAL</info> and <info>PSPELL_BAD_SPELLERS</info> are mutually
                     exclusive, so you should select only one of them.
                     
                     <info>PSPELL_FAST</info> - Fast mode (least number of suggestions)
                     
                     <info>PSPELL_NORMAL</info> - Normal mode (more suggestions)
                     
                     <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of suggestions)
                     
                     <info>PSPELL_RUN_TOGETHER</info> - Consider run-together words as legal compounds.  That is,
                     "thecat" will be a legal compound, although there should be a space between the
                     two words. Changing this setting only affects the results returned by
                     <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will still return suggestions.

<comment>Return:</comment>
  <info>PSpell\Dictionary|false</info>  Returns an <class>PSpell\Dictionary</class> instance on success, or <info>false</info> on failure.


id: pspell_new_config
type: function
doc:
<comment>Description:</comment>
  Load a new dictionary with settings based on a given config
    
  
  <strong>pspell_new_config()</strong> opens up a new dictionary with settings specified in a <strong>$config</strong>, created with
  <strong>pspell_config_create()</strong> and modified with <strong>pspell_config_*()</strong> functions. This method provides you
  with the most flexibility and has all the functionality provided by <strong>pspell_new()</strong> and
  <strong>pspell_new_personal()</strong>.

<comment>Param:</comment>
  <info>PSpell\Config</info>  <strong>$config</strong>  The <strong>$config</strong> parameter is the one returned by <strong>pspell_config_create()</strong> when
                          the config was created.

<comment>Return:</comment>
  <info>PSpell\Dictionary|false</info>  Returns an <class>PSpell\Dictionary</class> instance on success,  or <info>false</info> on failure


id: pspell_new_personal
type: function
doc:
<comment>Description:</comment>
  Load a new dictionary with personal wordlist
  
  <strong>pspell_new_personal()</strong> opens up a new dictionary with a personal wordlist. The wordlist can be
  modified and saved with <strong>pspell_save_wordlist()</strong>, if desired. However, the replacement pairs are not
  saved. In order to save replacement pairs, you should create a config using
  <strong>pspell_config_create()</strong>, set the personal wordlist file with <strong>pspell_config_personal()</strong>, set the file
  for replacement pairs with <strong>pspell_config_repl()</strong>, and open a new dictionary with
  <strong>pspell_new_config()</strong>.
  
  For more information and examples, check out inline manual pspell website:http://aspell.net/.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The file where words added to the personal list will be stored. It should be an
                     absolute filename beginning with '/' because otherwise it will be relative to
                     $HOME, which is "/root" for most systems, and is probably not what you want.
  <info>string</info>  <strong>$language</strong>  The language code which consists of the two letter ISO 639 language code and an
                     optional two letter ISO 3166 country code after a dash or underscore.
  <info>string</info>  <strong>$spelling</strong>  The requested spelling for languages with more than one spelling such as
                     English. Known values are 'american', 'british', and 'canadian'.
  <info>string</info>  <strong>$jargon</strong>    Extra information to distinguish two different words lists that have the same
                     language and spelling parameters.
  <info>string</info>  <strong>$encoding</strong>  The encoding that words are expected to be in.  Valid values are <return>utf-8</return>,
                     <return>iso8859-*</return>,  <return>koi8-r</return>, <return>viscii</return>,  <return>cp1252</return>, <return>machine unsigned 16</return>,  <return>machine unsigned 32</return>.
  <info>int</info>     <strong>$mode</strong>      The mode in which spellchecker will work. There are several modes available:
                     <info>PSPELL_FAST</info> - Fast mode (least number of suggestions) <info>PSPELL_NORMAL</info> - Normal
                     mode (more suggestions) <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of suggestions)
                     <info>PSPELL_RUN_TOGETHER</info> - Consider run-together words as legal compounds.  That is,
                     "thecat" will be a legal compound, although there should be a space between the
                     two words. Changing this setting only affects the results returned by
                     <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will still return suggestions.  Mode is a
                     bitmask constructed from different constants listed above. However,
                     <info>PSPELL_FAST</info>, <info>PSPELL_NORMAL</info> and <info>PSPELL_BAD_SPELLERS</info> are mutually exclusive, so
                     you should select only one of them.
                     
                     <info>PSPELL_FAST</info> - Fast mode (least number of suggestions)
                     
                     <info>PSPELL_NORMAL</info> - Normal mode (more suggestions)
                     
                     <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of suggestions)
                     
                     <info>PSPELL_RUN_TOGETHER</info> - Consider run-together words as legal compounds.  That is,
                     "thecat" will be a legal compound, although there should be a space between the
                     two words. Changing this setting only affects the results returned by
                     <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will still return suggestions.

<comment>Return:</comment>
  <info>PSpell\Dictionary|false</info>  Returns an <class>PSpell\Dictionary</class> instance on success, or <info>false</info> on failure.


id: pspell_save_wordlist
type: function
doc:
<comment>Description:</comment>
  Save the personal wordlist to a file
  
  <strong>pspell_save_wordlist()</strong> saves the personal wordlist from the current session. The location of files
  to be saved specified with <strong>pspell_config_personal()</strong> and (optionally) <strong>pspell_config_repl()</strong>.

<comment>Param:</comment>
  <info>PSpell\Dictionary</info>  <strong>$dictionary</strong>  An <class>PSpell\Dictionary</class> instance.

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


id: pspell_store_replacement
type: function
doc:
<comment>Description:</comment>
  Store a replacement pair for a word
  
  <strong>pspell_store_replacement()</strong> stores a replacement pair for a word, so that replacement can be
  returned by <strong>pspell_suggest()</strong> later. In order to be able to take advantage of this function, you
  have to use <strong>pspell_new_personal()</strong> to open the dictionary. In order to permanently save the
  replacement pair, you have to use <strong>pspell_config_personal()</strong> and <strong>pspell_config_repl()</strong> to set the
  path where to save your custom wordlists, and then use <strong>pspell_save_wordlist()</strong> for the changes to
  be written to disk.

<comment>Param:</comment>
  <info>PSpell\Dictionary</info>  <strong>$dictionary</strong>  An <class>PSpell\Dictionary</class> instance.
  <info>string</info>             <strong>$misspelled</strong>  The misspelled word.
  <info>string</info>             <strong>$correct</strong>     The fixed spelling for the <strong>$misspelled</strong> word.

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


id: pspell_suggest
type: function
doc:
<comment>Description:</comment>
  Suggest spellings of a word
  
  <strong>pspell_suggest()</strong> returns an array of possible spellings for the given word.

<comment>Param:</comment>
  <info>PSpell\Dictionary</info>  <strong>$dictionary</strong>  An <class>PSpell\Dictionary</class> instance.
  <info>string</info>             <strong>$word</strong>        The tested word.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of possible spellings.


id: putenv
type: function
doc:
<comment>Description:</comment>
  Sets the value of an environment variable
  
  Adds <strong>$assignment</strong> to the server environment.  The environment variable will only exist for the
  duration of the current request. At the end of the request the environment is restored to its
  original state.

<comment>Param:</comment>
  <info>string</info>  <strong>$assignment</strong>  The setting, like <return>"FOO=BAR"</return>

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

<comment>See Also:</comment>
   * <strong>getenv()</strong>
   * <strong>apache_setenv()</strong>


id: quoted_printable_decode
type: function
doc:
<comment>Description:</comment>
  Convert a quoted-printable string to an 8 bit string
  
  This function returns an 8-bit binary string corresponding to the decoded quoted printable string
  (according to RFC2045, section 6.7, not RFC2821, section 4.5.2, so additional periods are not
  stripped from the beginning of line).
  
  This function is similar to <strong>imap_qprint()</strong>, except this one does not require the IMAP module to
  work.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string.

<comment>Return:</comment>
  <info>string</info>  Returns the 8-bit binary string.

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


id: quoted_printable_encode
type: function
doc:
<comment>Description:</comment>
  Convert a 8 bit string to a quoted-printable string
  
  Returns a quoted printable string created according to RFC2045, section 6.7.
  
  This function is similar to <strong>imap_8bit()</strong>, except this one does not require the IMAP module to work.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string.

<comment>Return:</comment>
  <info>string</info>  Returns the encoded string.

<comment>See Also:</comment>
   * <strong>quoted_printable_decode()</strong>
   * <strong>iconv_mime_encode()</strong>


id: quotemeta
type: function
doc:
<comment>Description:</comment>
  Quote meta characters
  
  Returns a version of str with a backslash character (<return>\</return>) before every character that is among
  these:  . \ + * ? [ ^ ] ( $ )

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string.

<comment>Return:</comment>
  <info>string</info>  Returns the string with meta characters quoted, or <info>false</info> if an empty string is given as
          <strong>$string</strong>.

<comment>See Also:</comment>
   * <strong>addslashes()</strong>
   * <strong>addcslashes()</strong>
   * <strong>htmlentities()</strong>
   * <strong>htmlspecialchars()</strong>
   * <strong>nl2br()</strong>
   * <strong>stripslashes()</strong>
   * <strong>stripcslashes()</strong>
   * <strong>preg_quote()</strong>


id: rad2deg
type: function
doc:
<comment>Description:</comment>
  Converts the radian number to the equivalent number in degrees
    
  
  This function converts <strong>$num</strong> from radian to degrees.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  A radian value

<comment>Return:</comment>
  <info>float</info>  The equivalent of <strong>$num</strong> in degrees

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


id: radius_acct_open
type: function
doc:
<comment>Description:</comment>
  Creates a Radius handle for accounting

<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_add_server
type: function
doc:
<comment>Description:</comment>
  Adds a server
  
  <strong>radius_add_server()</strong> may be called multiple times, and it may be used together with
  <strong>radius_config()</strong>. At most 10 servers may be specified. When multiple servers are given, they are
  tried in round-robin fashion until a valid response is received, or until each server's <strong>$max_tries</strong>
  limit has been reached.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  
  <info>string</info>    <strong>$hostname</strong>       The <strong>$hostname</strong> parameter specifies the server host, either as a fully
                            qualified domain name or as a dotted-quad IP address in text form.
  <info>int</info>       <strong>$port</strong>           The <strong>$port</strong> specifies the UDP port to contact on the server. If port is
                            given as 0, the library looks up the radius/udp or radacct/udp service
                            in the network services database, and uses the port found there.  If no
                            entry is found, the library uses the standard Radius ports, 1812 for
                            authentication and 1813 for accounting.
  <info>string</info>    <strong>$secret</strong>         The shared secret for the server host is passed to the <strong>$secret</strong>
                            parameter. The Radius protocol ignores all but the leading 128 bytes of
                            the shared secret.
  <info>int</info>       <strong>$timeout</strong>        The timeout for receiving replies from the server is passed to the
                            <strong>$timeout</strong> parameter, in units of seconds.
  <info>int</info>       <strong>$max_tries</strong>      The maximum number of repeated requests to make before giving up is
                            passed into the <strong>$max_tries</strong>.

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

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


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>  The RADIUS resource.

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


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>  Returns <info>true</info> on success or <info>false</info> on failure.

<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>  Returns <info>true</info> on success or <info>false</info> on failure.

<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>  The RADIUS resource.
  <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>  The RADIUS resource.
  <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>  The RADIUS resource.

<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  or <info>false</info> on failure.

<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  or <info>false</info> on failure.

<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.
  
  A request must be created via <strong>radius_create_request()</strong> before this function can be called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  The RADIUS resource.
  <info>int</info>       <strong>$type</strong>           The attribute type.
  <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>        A bitmask of the attribute options. The available options include
                            <info>RADIUS_OPTION_TAGGED</info> and <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            The attribute tag. This parameter is ignored unless the
                            <info>RADIUS_OPTION_TAGGED</info> option is set.

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


id: radius_put_attr
type: function
doc:
<comment>Description:</comment>
  Attaches a binary attribute
  
  Attaches a binary attribute to the current RADIUS request.
  
  A request must be created via <strong>radius_create_request()</strong> before this function can be called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  The RADIUS resource.
  <info>int</info>       <strong>$type</strong>           The attribute type.
  <info>string</info>    <strong>$value</strong>          The attribute value, which will be treated as a raw binary string.
  <info>int</info>       <strong>$options</strong>        A bitmask of the attribute options. The available options include
                            <info>RADIUS_OPTION_TAGGED</info> and <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            The attribute tag. This parameter is ignored unless the
                            <info>RADIUS_OPTION_TAGGED</info> option is set.

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

<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.
  
  A request must be created via <strong>radius_create_request()</strong> before this function can be called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  The RADIUS resource.
  <info>int</info>       <strong>$type</strong>           The attribute type.
  <info>int</info>       <strong>$value</strong>          The attribute value.
  <info>int</info>       <strong>$options</strong>        A bitmask of the attribute options. The available options include
                            <info>RADIUS_OPTION_TAGGED</info> and <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            The attribute tag. This parameter is ignored unless the
                            <info>RADIUS_OPTION_TAGGED</info> option is set.

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

<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.
  
  A request must be created via <strong>radius_create_request()</strong> before this function can be called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  The RADIUS resource.
  <info>int</info>       <strong>$type</strong>           The attribute type.
  <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>        A bitmask of the attribute options. The available options include
                            <info>RADIUS_OPTION_TAGGED</info> and <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            The attribute tag. This parameter is ignored unless the
                            <info>RADIUS_OPTION_TAGGED</info> option is set.

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

<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.
  
  A request must be created via <strong>radius_create_request()</strong> before this function can be called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  The RADIUS resource.
  <info>int</info>       <strong>$vendor</strong>         The vendor ID.
  <info>int</info>       <strong>$type</strong>           The attribute type.
  <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>        A bitmask of the attribute options. The available options include
                            <info>RADIUS_OPTION_TAGGED</info> and <info>RADIUS_OPTION_SALT</info>.
  <info></info>          <strong>$tag</strong>            The attribute tag. This parameter is ignored unless the
                            <info>RADIUS_OPTION_TAGGED</info> option is set.

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


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.
  
  A request must be created via <strong>radius_create_request()</strong> before this function can be called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  The RADIUS resource.
  <info>int</info>       <strong>$vendor</strong>         The vendor ID.
  <info>int</info>       <strong>$type</strong>           The attribute type.
  <info>string</info>    <strong>$value</strong>          The attribute value, which will be treated as a raw binary string.
  <info>int</info>       <strong>$options</strong>        A bitmask of the attribute options. The available options include
                            <info>RADIUS_OPTION_TAGGED</info> and <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            The attribute tag. This parameter is ignored unless the
                            <info>RADIUS_OPTION_TAGGED</info> option is set.

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

<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.
  
  A request must be created via <strong>radius_create_request()</strong> before this function can be called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  The RADIUS resource.
  <info>int</info>       <strong>$vendor</strong>         The vendor ID.
  <info>int</info>       <strong>$type</strong>           The attribute type.
  <info>int</info>       <strong>$value</strong>          The attribute value.
  <info>int</info>       <strong>$options</strong>        A bitmask of the attribute options. The available options include
                            <info>RADIUS_OPTION_TAGGED</info> and <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            The attribute tag. This parameter is ignored unless the
                            <info>RADIUS_OPTION_TAGGED</info> option is set.

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

<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.
  
  A request must be created via <strong>radius_create_request()</strong> before this function can be called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  The RADIUS resource.
  <info>int</info>       <strong>$vendor</strong>         The vendor ID.
  <info>int</info>       <strong>$type</strong>           The attribute type.
  <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>        A bitmask of the attribute options. The available options include
                            <info>RADIUS_OPTION_TAGGED</info> and <info>RADIUS_OPTION_SALT</info>.
  <info>int</info>       <strong>$tag</strong>            The attribute tag. This parameter is ignored unless the
                            <info>RADIUS_OPTION_TAGGED</info> option is set.

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

<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>  The RADIUS resource.

<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  or <info>false</info> on failure.

<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>  The RADIUS resource.

<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>  The RADIUS resource.

<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>  The RADIUS resource.

<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>.
  
  This function does not generate cryptographically secure values, and must not be used for
  cryptographic purposes, or purposes that require returned values to be unguessable.
  
  If cryptographically secure randomness is required, the <class>Random\Randomizer</class> may be used with the
  <class>Random\Engine\Secure</class> engine. For simple use cases, the <strong>random_int()</strong> and <strong>random_bytes()</strong> functions
  provide a convenient and secure API that is backed by the operating system’s CSPRNG.
  
  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.
  
  The sources of randomness in the order of priority are as follows:
  
  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 if CCRandomGenerateBytes is available at compile
  time): 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
  
  Any combination of operating system and PHP version not previously mentioned: /dev/urandom
  
  If none of the sources are available or they all fail to generate randomness, then a
  <class>Random\RandomException</class> will be thrown.
  
  Although this function was added to PHP in PHP 7.0, a userland implementation is available for PHP
  5.2 to 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.
  
  The sources of randomness in the order of priority are as follows:
  
  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 if CCRandomGenerateBytes is available at compile
  time): 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
  
  Any combination of operating system and PHP version not previously mentioned: /dev/urandom
  
  If none of the sources are available or they all fail to generate randomness, then a
  <class>Random\RandomException</class> will be thrown.
  
  Although this function was added to PHP in PHP 7.0, a userland implementation is available for PHP
  5.2 to 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>
  Create an array containing a range of elements
  
  Create an array containing a range of elements.
  
  If both <strong>$start</strong> and <strong>$end</strong> are <info>string</info>s, and <strong>$step</strong> is <info>int</info> the produced array will be a sequence of
  bytes. Otherwise, the produced array will be a sequence of numbers.
  
  The sequence is increasing if <strong>$start</strong> is less than equal to <strong>$end</strong>. Otherwise, the sequence is
  decreasing.

<comment>Param:</comment>
  <info>string|int|float</info>  <strong>$start</strong>  First value of the sequence.
  <info>string|int|float</info>  <strong>$end</strong>    Last possible value of the sequence.
  <info>int|float</info>         <strong>$step</strong>   <strong>$step</strong> indicates by how much is the produced sequence progressed between
                            values of the sequence.
                            
                            <strong>$step</strong> may be negative for decreasing sequences.
                            
                            If <strong>$step</strong> is a <info>float</info> without a fractional part, it is interpreted as <info>int</info>.

<comment>Return:</comment>
  <info>array</info>  Returns a sequence of elements as an <info>array</info> with the first element being <strong>$start</strong> going up to
         <strong>$end</strong>, with each value of the sequence being <strong>$step</strong> values apart.
         
         The last element of the returned array is either <strong>$end</strong> or the previous element of the
         sequence, depending on the value of <strong>$step</strong>.
         
         If both <strong>$start</strong> and <strong>$end</strong> are <info>string</info>s, and <strong>$step</strong> is <info>int</info> the produced array will be a sequence
         of bytes, generally latin ASCII characters.
         
         If at least one of <strong>$start</strong>, <strong>$end</strong>, or <strong>$step</strong> is <info>float</info> the produced array will be a sequence of
         <info>float</info>.
         
         Otherwise, the produced array will be a sequence of <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
  
  This function is
  currently not documented; only its argument list is available.

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


id: rawurldecode
type: function
doc:
<comment>Description:</comment>
  Decode URL-encoded strings
  
  Returns a string in which the sequences with percent (<return>%</return>) signs followed by two hex digits have
  been replaced with literal characters.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The URL to be decoded.

<comment>Return:</comment>
  <info>string</info>  Returns the decoded URL, as a string.

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


id: rawurlencode
type: function
doc:
<comment>Description:</comment>
  URL-encode according to RFC 3986
  
  Encodes the given string according to RFC 3986.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The URL to be encoded.

<comment>Return:</comment>
  <info>string</info>  Returns a string in which all non-alphanumeric characters except <return>-_.~</return> have been replaced
          with a percent (<return>%</return>) sign followed by two hex digits.  This is the encoding described in RFC
          3986 for protecting literal characters from being interpreted as special URL delimiters,
          and for protecting URLs from being mangled by transmission media with character
          conversions (like some email systems).

<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>
  Alias of exif_read_data
  
  This function is an alias of:  <strong>exif_read_data()</strong>.


id: readdir
type: function
doc:
<comment>Description:</comment>
  Read entry from directory handle
  
  Returns the name of the next entry in the directory. The entries are returned in the order in
  which they are stored by the filesystem.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$dir_handle</strong>  The directory handle <info>resource</info> previously opened with <strong>opendir()</strong>. If the
                              directory handle is  not specified, the last link opened by <strong>opendir()</strong>
                              is assumed.

<comment>Return:</comment>
  <info>string|false</info>  Returns the entry name on success or <info>false</info> on failure.
                
                This function may
                return Boolean <info>false</info>, but may also return a non-Boolean value which
                evaluates to <info>false</info>. Please read the section on Booleans for more
                information. Use the ===
                operator for testing the return value of this
                function.

<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>
  Outputs a file
  
  Reads a file and writes it to the output buffer.

<comment>Param:</comment>
  <info>string</info>         <strong>$filename</strong>          The filename being read.
  <info>bool</info>           <strong>$use_include_path</strong>  You can use the optional second parameter and set it to <info>true</info>, if
                                    you want to search for the file in the include_path, too.
  <info>resource|null</info>  <strong>$context</strong>           A context stream
                                    <info>resource</info>.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of bytes read from the file on success, or <info>false</info> on failure

<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, or <info>false</info> on
             failure

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


id: readline
type: function
doc:
<comment>Description:</comment>
  Reads a line
  
  Reads a single line from the user. You must add this line to the history yourself using
  <strong>readline_add_history()</strong>.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$prompt</strong>  You may specify a string with which to prompt the user.

<comment>Return:</comment>
  <info>string|false</info>  Returns a single string from the user. The line returned has the ending newline
                removed. If there is no more data to read, then <info>false</info> is returned.


id: readline_add_history
type: function
doc:
<comment>Description:</comment>
  Adds a line to the history
  
  This function adds a line to the command line history.

<comment>Param:</comment>
  <info>string</info>  <strong>$prompt</strong>  The line to be added in the history.

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


id: readline_callback_handler_install
type: function
doc:
<comment>Description:</comment>
  Initializes the readline callback interface and terminal, prints the prompt and returns
  immediately
  
  Sets up a readline callback interface then prints <strong>$prompt</strong> and immediately returns.   Calling this
  function twice without removing the previous callback interface will automatically and
  conveniently overwrite the old interface.
  
  The callback feature is useful when combined with <strong>stream_select()</strong> as it allows interleaving of IO
  and user input, unlike <strong>readline()</strong>.

<comment>Param:</comment>
  <info>string</info>    <strong>$prompt</strong>    The prompt message.
  <info>callable</info>  <strong>$callback</strong>  The <strong>$callback</strong> function takes one parameter; the user input returned.

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

<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>
  Removes a previously installed callback handler and restores terminal settings
  
  Removes a previously installed callback handler and restores terminal settings.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if a previously installed callback handler was removed, or <info>false</info> if one could
        not be found.

<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>
  Reads a character and informs the readline callback interface when a line is received
  
  Reads a character of user input. When a line is received, this function informs the readline
  callback interface installed using <strong>readline_callback_handler_install()</strong> that a line is ready for
  input.

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<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>
  Clears the history
  
  This function clears the entire command line history.

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


id: readline_completion_function
type: function
doc:
<comment>Description:</comment>
  Registers a completion function
  
  This function registers a completion function. This is the same kind of functionality you'd get if
  you hit your tab key while using Bash.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  You must supply the name of an existing function which accepts a partial
                       command line and returns an array of possible matches.

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


id: readline_info
type: function
doc:
<comment>Description:</comment>
  Gets/sets various internal readline variables
  
  Gets or sets various internal readline variables.

<comment>Param:</comment>
  <info>string|null</info>           <strong>$var_name</strong>  A variable name.
  <info>int|string|bool|null</info>  <strong>$value</strong>     If provided, this will be the new value of the setting.

<comment>Return:</comment>
  <info>mixed</info>  If called with no parameters, this function returns an array of values for all the settings
         readline uses.  The elements will be indexed by the following values: <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>, and <return>terminal_name</return>. The <info>array</info> will only contain those elements which are
         supported by the library used to built the readline extension.
         
         If called with one or two parameters, the old value is returned.


id: readline_list_history
type: function
doc:
<comment>Description:</comment>
  Lists the history
  
  Gets the entire command line history.

<comment>Return:</comment>
  <info>array</info>  Returns an array of the entire command line history.  The elements are indexed by integers
         starting at zero.


id: readline_on_new_line
type: function
doc:
<comment>Description:</comment>
  Inform readline that the cursor has moved to a new line
  
  Tells readline that the cursor has moved to a new line.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: readline_read_history
type: function
doc:
<comment>Description:</comment>
  Reads the history
  
  This function reads a command history from a file.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  Path to the filename containing the command history.

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


id: readline_redisplay
type: function
doc:
<comment>Description:</comment>
  Redraws the display
  
  Redraws readline to redraw the display.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: readline_write_history
type: function
doc:
<comment>Description:</comment>
  Writes the history
  
  This function writes the command history to a file.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  Path to the saved file.

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


id: readlink
type: function
doc:
<comment>Description:</comment>
  Returns the target of a symbolic link
  
  <strong>readlink()</strong> does the same as the readlink C function.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  The symbolic link path.

<comment>Return:</comment>
  <info>string|false</info>  Returns the contents of the symbolic link path or <info>false</info> on error.
                
                The function fails if <strong>$path</strong> is not a symlink, except on Windows, where the
                normalized path will be returned.

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


id: realpath
type: function
doc:
<comment>Description:</comment>
  Returns canonicalized absolute pathname
  
  <strong>realpath()</strong> expands all symbolic links and resolves references to <return>/./</return>, <return>/../</return> and extra <return>/</return> characters
  in the input <strong>$path</strong> and returns the canonicalized absolute pathname.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  The path being checked.  Whilst a path must be supplied, the value can be an empty
                 string. In this case, the value is interpreted as the current directory.
                 
                 Whilst a path must be supplied, the value can be an empty string. In this case, the
                 value is interpreted as the current directory.

<comment>Return:</comment>
  <info>string|false</info>  Returns the canonicalized absolute pathname on success. The resulting path  will
                have no symbolic link, <return>/./</return> or <return>/../</return> components. Trailing delimiters, such as <return>\</return> and <return>/</return>,
                are also removed.
                
                <strong>realpath()</strong> returns <info>false</info> on failure, e.g. if the file does not exist.
                
                The running script must have executable permissions on all directories in the
                hierarchy, otherwise <strong>realpath()</strong> will return <info>false</info>.
                
                For case-insensitive filesystems <strong>realpath()</strong> may or may not normalize the character
                case.
                
                The function <strong>realpath()</strong> will not work for a file which is inside a Phar as such path
                would be a virtual path, not a real one.
                
                On Windows, junctions and symbolic links to directories are only expanded by one
                level.
                
                Because PHP's integer type is signed and many platforms use 32bit integers, some
                filesystem functions may return unexpected results for files which are larger than
                2GB.

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


id: realpath_cache_get
type: function
doc:
<comment>Description:</comment>
  Get realpath cache entries
  
  Get the contents of the realpath cache.

<comment>Return:</comment>
  <info>array</info>  Returns an array of realpath cache entries. The keys are original path entries, and the
         values are arrays of data items, containing the resolved path, expiration date, and other
         options kept in the cache.

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


id: realpath_cache_size
type: function
doc:
<comment>Description:</comment>
  Get realpath cache size
  
  Get the amount of memory used by the realpath cache.

<comment>Return:</comment>
  <info>int</info>  Returns how much memory realpath cache is using.

<comment>See Also:</comment>
   * <strong>realpath_cache_get()</strong>
   * 
     The realpath_cache_size
     configuration option
    


id: recode
type: function
doc:
<comment>Description:</comment>
  Alias of recode_string
  
  This function is an alias of:  <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>  No value is returned.

<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>  Returns <info>true</info> on success or <info>false</info> on failure.

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


id: rename
type: function
doc:
<comment>Description:</comment>
  Renames a file or directory
  
  Attempts to rename <strong>$from</strong> to <strong>$to</strong>, moving it between directories if necessary. If renaming a file
  and <strong>$to</strong> exists, it will be overwritten. If renaming a directory and <strong>$to</strong> exists, this function will
  emit a warning.

<comment>Param:</comment>
  <info>string</info>         <strong>$from</strong>     The old name.
                           
                           The wrapper used in <strong>$from</strong> must match the wrapper used in <strong>$to</strong>.
  <info>string</info>         <strong>$to</strong>       The new name.  On Windows, if <strong>$to</strong> already exists, it must be writable.
                           Otherwise <strong>rename()</strong> fails and issues <info>E_WARNING</info>.
                           
                           On Windows, if <strong>$to</strong> already exists, it must be writable. Otherwise
                           <strong>rename()</strong> fails and issues <info>E_WARNING</info>.
  <info>resource|null</info>  <strong>$context</strong>  A context stream
                           <info>resource</info>.

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

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


id: reset
type: function
doc:
<comment>Description:</comment>
  Set the internal pointer of an array to its first element
  
  <strong>reset()</strong> rewinds <strong>$array</strong>'s internal pointer to the first element and returns the value of the first
  array element.

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>  The input array.

<comment>Return:</comment>
  <info>mixed</info>  Returns the value of the first array element, or <info>false</info> if the array is empty.
         
         This function may
         return Boolean <info>false</info>, but may also return a non-Boolean value which
         evaluates to <info>false</info>. Please read the section on Booleans for more
         information. Use the ===
         operator for testing the return value of this
         function.

<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>
  Restores the previous error handler function
  
  Used after changing the error handler function using <strong>set_error_handler()</strong>, to revert to the
  previous error handler (which could be the built-in or a user defined function).

<comment>Return:</comment>
  <info>true</info>  Always returns <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>  Always returns <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>
  Restores the value of the include_path configuration option
  
  Restores the include_path configuration option back to its original master value as set in php.ini

<comment>Return:</comment>
  <info>void</info>  No value is returned.

<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>
  Rewind the position of a file pointer
  
  Sets the file position indicator for <strong>$stream</strong> to the beginning of the file stream.
  
  If you have opened the file in append ("a" or "a+") mode, any data you write to the file will
  always be appended, regardless of the file pointer position.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The file pointer must be valid, and must point to a file successfully opened by
                     <strong>fopen()</strong>.

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

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


id: rewinddir
type: function
doc:
<comment>Description:</comment>
  Rewind directory handle
  
  Resets the directory stream indicated by <strong>$dir_handle</strong> to the beginning of the directory.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$dir_handle</strong>  The directory handle <info>resource</info> previously opened with <strong>opendir()</strong>. If the
                              directory handle is  not specified, the last link opened by <strong>opendir()</strong>
                              is assumed.

<comment>Return:</comment>
  <info>void</info>  No value is returned.


id: rmdir
type: function
doc:
<comment>Description:</comment>
  Removes directory
  
  Attempts to remove the directory named by <strong>$directory</strong>. The directory must be empty, and the
  relevant permissions must permit this. A <info>E_WARNING</info> level error will be generated on failure.

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>  Path to the directory.
  <info>resource|null</info>  <strong>$context</strong>    A context stream
                             <info>resource</info>.

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

<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>    The FFI object returned by rnp_ffi_create.
  <info>string</info>  <strong>$input</strong>  Encrypted message.

<comment>Return:</comment>
  <info>string|false</info>  Decrypted message on success or <info>false</info> on failure.


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 or <info>false</info> on failure.


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 or <info>false</info> on failure.


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 or <info>false</info> on failure.


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>  The FFI object returned by 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>                The FFI object returned by 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 or <info>false</info> on failure.

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


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>    The FFI object returned by 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 or <info>false</info> on
                failure.


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>    The FFI object returned by 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 or <info>false</info> on failure.


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

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>     The FFI object returned by 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 or <info>false</info> on
                failure.


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>        The FFI object returned by 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 or <info>false</info> on failure.


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>      The FFI object returned by 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 or <info>false</info> on failure.


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>     The FFI object returned by 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 or <info>false</info> on failure.


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>     The FFI object returned by 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 or <info>false</info> on failure.


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>      The FFI object returned by 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 or <info>false</info> on failure.


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>              The FFI object returned by 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 or <info>false</info> on failure.


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>     The FFI object returned by rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>  The key format of the data (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>   See RNP_LOAD_SAVE_* flags description.

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


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>         The FFI object returned by rnp_ffi_create.
  <info>string</info>  <strong>$format</strong>      The key format of the data (GPG, KBX, G10).
  <info>string</info>  <strong>$input_path</strong>  file or directory containing the keys.
  <info>int</info>     <strong>$flags</strong>       See RNP_LOAD_SAVE_* flags description.

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


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>              The FFI object returned by 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 or <info>false</info> on failure.


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

<comment>Param:</comment>
  <info>RnpFFI</info>  <strong>$ffi</strong>                The FFI object returned by 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 or <info>false</info> on failure.


