# php_manual

id: trader_trima
type: function
doc:
<comment>Description:</comment>
  Triangular Moving Average

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>        Array of real values.
  <info>int</info>    <strong>$timePeriod</strong>  Number of period. Valid range from 2 to 100000.

<comment>Return:</comment>
  <info>array</info>  Returns an array with calculated data or false on failure.


id: trader_trix
type: function
doc:
<comment>Description:</comment>
  1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>        Array of real values.
  <info>int</info>    <strong>$timePeriod</strong>  Number of period. Valid range from 2 to 100000.

<comment>Return:</comment>
  <info>array</info>  Returns an array with calculated data or false on failure.


id: trader_tsf
type: function
doc:
<comment>Description:</comment>
  Time Series Forecast

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>        Array of real values.
  <info>int</info>    <strong>$timePeriod</strong>  Number of period. Valid range from 2 to 100000.

<comment>Return:</comment>
  <info>array</info>  Returns an array with calculated data or false on failure.


id: trader_typprice
type: function
doc:
<comment>Description:</comment>
  Typical Price

<comment>Param:</comment>
  <info>array</info>  <strong>$high</strong>   High price, array of real values.
  <info>array</info>  <strong>$low</strong>    Low price, array of real values.
  <info>array</info>  <strong>$close</strong>  Closing price, array of real values.

<comment>Return:</comment>
  <info>array</info>  Returns an array with calculated data or false on failure.


id: trader_ultosc
type: function
doc:
<comment>Description:</comment>
  Ultimate Oscillator

<comment>Param:</comment>
  <info>array</info>  <strong>$high</strong>         High price, array of real values.
  <info>array</info>  <strong>$low</strong>          Low price, array of real values.
  <info>array</info>  <strong>$close</strong>        Closing price, array of real values.
  <info>int</info>    <strong>$timePeriod1</strong>  Number of bars for 1st period. Valid range from 1 to 100000.
  <info>int</info>    <strong>$timePeriod2</strong>  Number of bars for 2nd period. Valid range from 1 to 100000.
  <info>int</info>    <strong>$timePeriod3</strong>  Number of bars for 3rd period. Valid range from 1 to 100000.

<comment>Return:</comment>
  <info>array</info>  Returns an array with calculated data or false on failure.


id: trader_var
type: function
doc:
<comment>Description:</comment>
  Variance

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>        Array of real values.
  <info>int</info>    <strong>$timePeriod</strong>  Number of period. Valid range from 2 to 100000.
  <info>float</info>  <strong>$nbDev</strong>       

<comment>Return:</comment>
  <info>array</info>  Returns an array with calculated data or false on failure.


id: trader_wclprice
type: function
doc:
<comment>Description:</comment>
  Weighted Close Price

<comment>Param:</comment>
  <info>array</info>  <strong>$high</strong>   High price, array of real values.
  <info>array</info>  <strong>$low</strong>    Low price, array of real values.
  <info>array</info>  <strong>$close</strong>  Closing price, array of real values.

<comment>Return:</comment>
  <info>array</info>  Returns an array with calculated data or false on failure.


id: trader_willr
type: function
doc:
<comment>Description:</comment>
  Williams' %R

<comment>Param:</comment>
  <info>array</info>  <strong>$high</strong>        High price, array of real values.
  <info>array</info>  <strong>$low</strong>         Low price, array of real values.
  <info>array</info>  <strong>$close</strong>       Closing price, array of real values.
  <info>int</info>    <strong>$timePeriod</strong>  Number of period. Valid range from 2 to 100000.

<comment>Return:</comment>
  <info>array</info>  Returns an array with calculated data or false on failure.


id: trader_wma
type: function
doc:
<comment>Description:</comment>
  Weighted Moving Average

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>        Array of real values.
  <info>int</info>    <strong>$timePeriod</strong>  Number of period. Valid range from 2 to 100000.

<comment>Return:</comment>
  <info>array</info>  Returns an array with calculated data or false on failure.


id: trait_exists
type: function
doc:
<comment>Description:</comment>
  Checks if the trait exists

<comment>Param:</comment>
  <info>string</info>  <strong>$trait</strong>     Name of the trait to check
  <info>bool</info>    <strong>$autoload</strong>  Whether to autoload if not already loaded.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if trait exists, and <info>false</info> otherwise.


id: trigger_error
type: function
doc:
<comment>Description:</comment>
  Generates a user-level error/warning/notice message
  
  Used to trigger a user error condition, it can be used in conjunction with the built-in error
  handler, or with a user defined function that has been set as the new error handler
  (<strong>set_error_handler()</strong>).
  
  This function is useful when you need to generate a particular response to an exception at
  runtime.

<comment>Param:</comment>
  <info>string</info>  <strong>$message</strong>      The designated error message for this error. It's limited to 1024  bytes in
                        length. Any additional characters beyond 1024 bytes will be  truncated.
  <info>int</info>     <strong>$error_level</strong>  The designated error type for this error. It only works with the E_USER
                        family of constants, and will default to <info>E_USER_NOTICE</info>.

<comment>Return:</comment>
  <info>bool</info>  This function returns <info>false</info> if wrong <strong>$error_level</strong> is specified, <info>true</info> otherwise.

<comment>See Also:</comment>
   * <strong>error_reporting()</strong>
   * <strong>set_error_handler()</strong>
   * <strong>restore_error_handler()</strong>
   * The error level constants


id: trim
type: function
doc:
<comment>Description:</comment>
  Strip whitespace (or other characters) from the beginning and end of a string
  
  This function returns a string with whitespace stripped from the beginning and end of <strong>$string</strong>.
  Without the second parameter, <strong>trim()</strong> will strip these characters:   " " (ASCII <return>32</return>  (<return>0x20</return>)), an
  ordinary space.  "\t" (ASCII <return>9</return>  (<return>0x09</return>)), a tab.  "\n" (ASCII <return>10</return>  (<return>0x0A</return>)), a new line (line feed).
  "\r" (ASCII <return>13</return>  (<return>0x0D</return>)), a carriage return.  "\0" (ASCII <return>0</return>  (<return>0x00</return>)), the <return>NUL</return>-byte.  "\v" (ASCII <return>11</return>
  (<return>0x0B</return>)), a vertical tab.
  
  " " (ASCII <return>32</return>  (<return>0x20</return>)), an ordinary space.
  
  "\t" (ASCII <return>9</return>  (<return>0x09</return>)), a tab.
  
  "\n" (ASCII <return>10</return>  (<return>0x0A</return>)), a new line (line feed).
  
  "\r" (ASCII <return>13</return>  (<return>0x0D</return>)), a carriage return.
  
  "\0" (ASCII <return>0</return>  (<return>0x00</return>)), the <return>NUL</return>-byte.
  
  "\v" (ASCII <return>11</return>  (<return>0x0B</return>)), a vertical tab.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      The <info>string</info> that will be trimmed.
  <info>string</info>  <strong>$characters</strong>  Optionally, the stripped characters can also be specified using the
                       <strong>$characters</strong> parameter. Simply list all characters that you want to be
                       stripped. With <return>..</return> you can specify a range of characters.

<comment>Return:</comment>
  <info>string</info>  The trimmed string.

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


id: uasort
type: function
doc:
<comment>Description:</comment>
  Sort an array with a user-defined comparison function and maintain index association
  
  Sorts <strong>$array</strong> in place such that its keys maintain their correlation with the values they are
  associated with, using a user-defined comparison function.
  
  This is used mainly when sorting associative arrays where the actual element order is significant.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.
  
  Resets array's internal pointer to the first element.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>     The input array.
  <info>callable</info>  <strong>$callback</strong>  The comparison function must return an integer less than, equal to, or
                       greater than zero if the first argument is considered to be respectively less
                       than, equal to, or greater than the second.
                       
                       Returning non-integer values from the comparison function, such as <info>float</info>,
                       will result in an internal cast to <info>int</info> of the callback's return value. So
                       values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>, which
                       will compare such values as equal.

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

<comment>See Also:</comment>
   * <strong>usort()</strong>
   * <strong>uksort()</strong>
   * The comparison of array sorting functions


id: ucfirst
type: function
doc:
<comment>Description:</comment>
  Make a string's first character uppercase
  
  Returns a string with the first character of <strong>$string</strong> capitalized, if that character is an ASCII
  character in the range from <return>"a"</return> (0x61) to <return>"z"</return> (0x7a).

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string.

<comment>Return:</comment>
  <info>string</info>  Returns the resulting string.

<comment>See Also:</comment>
   * <strong>lcfirst()</strong>
   * <strong>strtolower()</strong>
   * <strong>strtoupper()</strong>
   * <strong>ucwords()</strong>
   * <strong>mb_convert_case()</strong>


id: ucwords
type: function
doc:
<comment>Description:</comment>
  Uppercase the first character of each word in a string
  
  Returns a string with the first character of each word in <strong>$string</strong> capitalized, if that character
  is an ASCII character between <return>"a"</return> (0x61) and <return>"z"</return> (0x7a).
  
  For this function, a word is a string of characters that are not listed in  the <strong>$separators</strong>
  parameter. By default, these are:  space, horizontal tab, carriage return, newline, form-feed and
  vertical tab.
  
  To do a similar conversion on multibyte strings, use <strong>mb_convert_case()</strong> with the <info>MB_CASE_TITLE</info>
  mode.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      The input string.
  <info>string</info>  <strong>$separators</strong>  The optional <strong>$separators</strong> contains the word separator characters.

<comment>Return:</comment>
  <info>string</info>  Returns the modified string.

<comment>See Also:</comment>
   * <strong>strtoupper()</strong>
   * <strong>strtolower()</strong>
   * <strong>ucfirst()</strong>
   * <strong>mb_convert_case()</strong>


id: uksort
type: function
doc:
<comment>Description:</comment>
  Sort an array by keys using a user-defined comparison function
  
  Sorts <strong>$array</strong> in place by keys using a user-supplied comparison function to determine the order.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.
  
  Resets array's internal pointer to the first element.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>     The input array.
  <info>callable</info>  <strong>$callback</strong>  The comparison function must return an integer less than, equal to, or
                       greater than zero if the first argument is considered to be respectively less
                       than, equal to, or greater than the second.
                       
                       Returning non-integer values from the comparison function, such as <info>float</info>,
                       will result in an internal cast to <info>int</info> of the callback's return value. So
                       values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>, which
                       will compare such values as equal.

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

<comment>See Also:</comment>
   * <strong>usort()</strong>
   * <strong>uasort()</strong>
   * The comparison of array sorting functions


id: umask
type: function
doc:
<comment>Description:</comment>
  Changes the current umask
  
  <strong>umask()</strong> sets PHP's umask to <strong>$mask</strong> & 0777 and returns the old umask. When PHP is being used as a
  server module, the umask is restored when each request is finished.

<comment>Param:</comment>
  <info>int|null</info>  <strong>$mask</strong>  The new umask.

<comment>Return:</comment>
  <info>int</info>  If <strong>$mask</strong> is <info>null</info>, <strong>umask()</strong>  simply returns the current umask otherwise the old umask is
       returned.


id: uniqid
type: function
doc:
<comment>Description:</comment>
  Generate a unique ID
  
  Gets a prefixed unique identifier based on the current time in microseconds.
  
  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.
  
  This function does not guarantee uniqueness of return value. Since most systems adjust system
  clock by NTP or like, system time is changed constantly. Therefore, it is possible that this
  function does not return unique ID for the process/thread. Use <strong>$more_entropy</strong> to increase
  likelihood of uniqueness.

<comment>Param:</comment>
  <info>string</info>  <strong>$prefix</strong>        Can be useful, for instance, if you generate identifiers simultaneously on
                         several hosts that might happen to generate the identifier at the same
                         microsecond.
                         
                         With an empty <strong>$prefix</strong>, the returned string will be 13 characters long.  If
                         <strong>$more_entropy</strong> is <info>true</info>, it will be 23 characters.
  <info>bool</info>    <strong>$more_entropy</strong>  If set to <info>true</info>, <strong>uniqid()</strong> will add additional entropy (using the combined
                         linear congruential generator) at the end of the return value, which
                         increases the likelihood that the result will be unique.

<comment>Return:</comment>
  <info>string</info>  Returns timestamp based unique identifier as a string.
          
          This function tries to create unique identifier, but it does not guarantee 100% uniqueness
          of return value.

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


id: unixtojd
type: function
doc:
<comment>Description:</comment>
  Convert Unix timestamp to Julian Day
  
  Return the Julian Day for a Unix <strong>$timestamp</strong> (seconds since 1.1.1970), or for the current day if no
  <strong>$timestamp</strong> is given. Either way, the time is regarded as local time (not UTC).

<comment>Param:</comment>
  <info>int|null</info>  <strong>$timestamp</strong>  A unix timestamp to convert.

<comment>Return:</comment>
  <info>int|false</info>  A julian day number as integer,  or <info>false</info> on failure.

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


id: unlink
type: function
doc:
<comment>Description:</comment>
  Deletes a file
  
  Deletes <strong>$filename</strong>.  Similar to the Unix C unlink() function. An <info>E_WARNING</info> level error will be
  generated on failure.

<comment>Param:</comment>
  <info>string</info>         <strong>$filename</strong>  Path to the file.
                            
                            If the file is a symlink, the symlink will be deleted. On Windows, to
                            delete a symlink to a directory, <strong>rmdir()</strong> has to be used instead.
  <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>rmdir()</strong>


id: unpack
type: function
doc:
<comment>Description:</comment>
  Unpack data from binary string
  
  Unpacks from a binary string into an array according to the given <strong>$format</strong>.
  
  The unpacked data is stored in an associative array. To accomplish this you have to name the
  different format codes and separate them by a slash /. If a repeater argument is present, then
  each of the array keys will have a sequence number behind the given name.
  
  Changes were made to bring this function into line with Perl:  The "a" code now retains trailing
  NULL bytes.  The "A" code now strips all trailing ASCII whitespace (spaces, tabs, newlines,
  carriage returns, and NULL bytes).  The "Z" code was added for NULL-padded strings, and removes
  trailing NULL bytes.

<comment>Param:</comment>
  <info>string</info>  <strong>$format</strong>  See <strong>pack()</strong> for an explanation of the format codes.
  <info>string</info>  <strong>$string</strong>  The packed data.
  <info>int</info>     <strong>$offset</strong>  The offset to begin unpacking from.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array containing unpacked elements of binary string,  or <info>false</info>
               on failure.

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


id: unregister_tick_function
type: function
doc:
<comment>Description:</comment>
  De-register a function for execution on each tick
  
  De-registers the function <strong>$callback</strong> so it is no longer executed when a tick is called.

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

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

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


id: unserialize
type: function
doc:
<comment>Description:</comment>
  Creates a PHP value from a stored representation
    
  
  <strong>unserialize()</strong> takes a single serialized variable and converts it back into a PHP value.
  
  Do not pass untrusted user input to <strong>unserialize()</strong> regardless of the <strong>$options</strong> value of
  <return>allowed_classes</return>. Unserialization can result in code being loaded and executed due to object
  instantiation and autoloading, and a malicious user may be able to exploit this. Use a safe,
  standard data interchange format such as JSON (via <strong>json_decode()</strong> and <strong>json_encode()</strong>) if you need to
  pass serialized data to the user.
  
  If you need to unserialize externally-stored serialized data, consider using <strong>hash_hmac()</strong> for data
  validation. Make sure data is not modified by anyone but you.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>     The serialized string.
                    
                    If the variable being unserialized is an object, after successfully
                    reconstructing the object PHP will automatically attempt to call the
                    __unserialize() or __wakeup() methods (if one exists).
                    
                    unserialize_callback_func directive It's possible to set a callback-function
                    which will be called, if an undefined class should be instantiated during
                    unserializing. (to prevent getting an incomplete <info>object</info>
                    "__PHP_Incomplete_Class".) Use your php.ini, <strong>ini_set()</strong> or .htaccess  to define
                    unserialize_callback_func. Everytime an undefined class should be instantiated,
                    it'll be called.  To disable this feature just empty this setting.
                    
                    It's possible to set a callback-function which will be called, if an undefined
                    class should be instantiated during unserializing. (to prevent getting an
                    incomplete <info>object</info> "__PHP_Incomplete_Class".) Use your php.ini, <strong>ini_set()</strong> or
                    .htaccess  to define unserialize_callback_func. Everytime an undefined class
                    should be instantiated, it'll be called.  To disable this feature just empty
                    this setting.
  <info>array</info>   <strong>$options</strong>  Any options to be provided to <strong>unserialize()</strong>, as an associative array.
                    
                    Either an <info>array</info> of class names which should be accepted, <info>false</info> to accept no
                    classes, or <info>true</info> to accept all classes. If this option is defined and
                    <strong>unserialize()</strong> encounters an object of a class that isn't to be accepted, then
                    the object will be instantiated as <class>__PHP_Incomplete_Class</class> instead.
                    
                    Omitting this option is the same as defining it as <info>true</info>: PHP will attempt to
                    instantiate objects of any class.
                    
                    The maximum depth of structures permitted during unserialization, and is
                    intended to prevent stack overflows. The default depth limit is <return>4096</return> and can be
                    disabled by setting <return>max_depth</return> to <return>0</return>.

<comment>Return:</comment>
  <info>mixed</info>  The converted value is returned, and can be a <info>bool</info>, <info>int</info>, <info>float</info>, <info>string</info>, <info>array</info> or <info>object</info>.
         
         In case the passed string is not unserializeable, <info>false</info> is returned and <info>E_NOTICE</info> is issued.

<comment>See Also:</comment>
   * <strong>json_encode()</strong>
   * <strong>json_decode()</strong>
   * <strong>hash_hmac()</strong>
   * <strong>serialize()</strong>
   * Autoloading Classes
   * unserialize_callback_func
   * unserialize_max_depth
   * __wakeup()
   * __serialize()
   * __unserialize()


id: unset
type: function
doc:
<comment>Description:</comment>
  Unset a given variable
  
  <strong>unset()</strong> destroys the specified variables.
  
  The behavior of <strong>unset()</strong> inside of a function can vary depending on what type of variable you are
  attempting to destroy.
  
  If a globalized variable is <strong>unset()</strong> inside of a function, only the local variable is destroyed.
  The variable in the calling environment will retain the same value as before <strong>unset()</strong> was called.
  ]]>
  
  The above example will output:
  
  
  
  To <strong>unset()</strong> a global variable inside of a function, then use the $GLOBALS array to do so: 
  ]]>
  
  If a variable that is PASSED BY REFERENCE is <strong>unset()</strong> inside of a function, only the local variable
  is destroyed.  The variable in the calling environment will retain the same value as before
  <strong>unset()</strong> was called.
  ]]>
  
  The above example will output:
  
  
  
  If a static variable is <strong>unset()</strong> inside of a function, <strong>unset()</strong> destroys the variable only in the
  context of the rest of a function. Following calls will restore the previous value of a variable.
  ]]>
  
  The above example will output:
  
  

<comment>Param:</comment>
  <info>mixed</info>  <strong>$var</strong>   The variable to be unset.
  <info>mixed</info>  <strong>$vars</strong>  Further variables.

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

<comment>See Also:</comment>
   * <strong>isset()</strong>
   * <strong>empty()</strong>
   * __unset()
   * <strong>array_splice()</strong>
   * (unset) casting


id: untaint
type: function
doc:
<comment>Description:</comment>
  Untaint strings
  
  Untaint strings

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

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


id: uopz_add_function
type: function
doc:
<comment>Description:</comment>
  Adds non-existent function or method
  
  Adds a non-existent function or method.

<comment>Param:</comment>
  <info>string</info>   <strong>$class</strong>     The name of the class.
  <info>string</info>   <strong>$function</strong>  The name of the function or method.
  <info>Closure</info>  <strong>$handler</strong>   The <class>Closure</class> that defines the new function or method.
  <info>int</info>      <strong>$flags</strong>     Flags to set for the new function or method.
  <info>int</info>      <strong>$all</strong>       Whether all classes that descend from <strong>$class</strong> will also be affected.

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

<comment>See Also:</comment>
   * <strong>uopz_del_function()</strong>
   * <strong>uopz_set_return()</strong>


id: uopz_allow_exit
type: function
doc:
<comment>Description:</comment>
  Allows control over disabled exit opcode
  
  By default uopz disables the exit opcode, so <strong>exit()</strong> calls are practically ignored.
  <strong>uopz_allow_exit()</strong> allows to control this behavior.

<comment>Param:</comment>
  <info>bool</info>  <strong>$allow</strong>  Whether to allow the execution of exit opcodes or not.

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

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


id: uopz_backup
type: function
doc:
<comment>Description:</comment>
  Backup a function
  
  Backup a function at runtime, to be restored on shutdown

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class containing the function to backup
  <info>string</info>  <strong>$function</strong>  The name of the function

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


id: uopz_compose
type: function
doc:
<comment>Description:</comment>
  Compose a class
  
  Creates a new class of the given name that implements, extends, or uses all of the provided
  classes

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>        A legal class name
  <info>array</info>   <strong>$classes</strong>     An array of class, interface and trait names
  <info>array</info>   <strong>$methods</strong>     An associative array of methods, values are either closures or [modifiers
                       =&gt; closure]
  <info>array</info>   <strong>$properties</strong>  An associative array of properties, keys are names, values are modifiers
  <info>int</info>     <strong>$flags</strong>       Entry type, by default ZEND_ACC_CLASS

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


id: uopz_copy
type: function
doc:
<comment>Description:</comment>
  Copy a function
  
  Copy a function by name

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class containing the function to copy
  <info>string</info>  <strong>$function</strong>  The name of the function

<comment>Return:</comment>
  <info>Closure</info>  A Closure for the specified function


id: uopz_del_function
type: function
doc:
<comment>Description:</comment>
  Deletes previously added function or method
  
  Deletes a previously added function or method.

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class.
  <info>string</info>  <strong>$function</strong>  The name of the function or method.
  <info>int</info>     <strong>$all</strong>       Whether all classes that descend from <strong>$class</strong> will also be affected.

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

<comment>See Also:</comment>
   * <strong>uopz_add_function()</strong>
   * <strong>uopz_unset_return()</strong>


id: uopz_delete
type: function
doc:
<comment>Description:</comment>
  Delete a function
  
  Deletes a function or method

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     
  <info>string</info>  <strong>$function</strong>  

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


id: uopz_extend
type: function
doc:
<comment>Description:</comment>
  Extend a class at runtime
  
  Makes <strong>$class</strong> extend <strong>$parent</strong>

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>   The name of the class to extend
  <info>string</info>  <strong>$parent</strong>  The name of the class to inherit

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


id: uopz_flags
type: function
doc:
<comment>Description:</comment>
  Get or set flags on function or class
  
  Get or set the flags on a class or function entry at runtime

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of a class
  <info>string</info>  <strong>$function</strong>  The name of the function. If <strong>$class</strong> is given and an empty string is passed as
                     <strong>$function</strong>, <strong>uopz_flags()</strong> gets or sets the flags of the class entry.
  <info>int</info>     <strong>$flags</strong>     A valid set of ZEND_ACC_ flags. If omitted, <strong>uopz_flags()</strong> acts as getter.

<comment>Return:</comment>
  <info>int</info>  If setting, returns old flags, else returns flags


id: uopz_function
type: function
doc:
<comment>Description:</comment>
  Creates a function at runtime
  
  Creates a function at runtime

<comment>Param:</comment>
  <info>string</info>   <strong>$class</strong>      The name of the class to receive the new function
  <info>string</info>   <strong>$function</strong>   The name of the function
  <info>Closure</info>  <strong>$handler</strong>    The Closure for the function
  <info>int</info>      <strong>$modifiers</strong>  The modifiers for the function, by default copied or ZEND_ACC_PUBLIC

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


id: uopz_get_exit_status
type: function
doc:
<comment>Description:</comment>
  Retrieve the last set exit status
  
  Retrieves the last set exit status, i.e. the value passed to <strong>exit()</strong>.

<comment>Return:</comment>
  <info>mixed</info>  This function returns the last exit status, or <info>null</info> if <strong>exit()</strong> has not been called.

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


id: uopz_get_hook
type: function
doc:
<comment>Description:</comment>
  Gets previously set hook on function or method
  
  Gets the previously set hook on a function or method.

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

<comment>Return:</comment>
  <info>Closure</info>  Returns the previously set hook on a function or method, or <info>null</info> if no hook has been set.

<comment>See Also:</comment>
   * <strong>uopz_set_hook()</strong>
   * <strong>uopz_unset_hook()</strong>


id: uopz_get_mock
type: function
doc:
<comment>Description:</comment>
  Get the current mock for a class
  
  Returns the current mock for <strong>$class</strong>.

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

<comment>Return:</comment>
  <info>mixed</info>  Either a string containing the name of the mock, or an object, or <info>null</info> if no mock has been
         set.

<comment>See Also:</comment>
   * <strong>uopz_set_mock()</strong>
   * <strong>uopz_unset_mock()</strong>


id: uopz_get_property
type: function
doc:
<comment>Description:</comment>
  Gets value of class or instance property
  
  Gets the value of a static class property, if <strong>$class</strong> is given, or the value of an instance
  property, if <strong>$instance</strong> is given.

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

<comment>Return:</comment>
  <info>mixed</info>  Returns the value of the class or instance property, or <info>null</info> if the property is not
         defined.

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


id: uopz_get_return
type: function
doc:
<comment>Description:</comment>
  Gets a previous set return value for a function
  
  Gets the return value of the <strong>$function</strong> previously set by uopz_set_return.

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

<comment>Return:</comment>
  <info>mixed</info>  The return value or Closure previously set.


id: uopz_get_static
type: function
doc:
<comment>Description:</comment>
  Gets the static variables from function or method scope
  
  Gets the static variables from function or method scope.

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

<comment>Return:</comment>
  <info>array</info>  Returns an associative <info>array</info> of variable names mapped to their current values on success,
         or <info>null</info> if the function or method does not exist.

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


id: uopz_implement
type: function
doc:
<comment>Description:</comment>
  Implements an interface at runtime
  
  Makes <strong>$class</strong> implement <strong>$interface</strong>

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>      
  <info>string</info>  <strong>$interface</strong>  

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


id: uopz_overload
type: function
doc:
<comment>Description:</comment>
  Overload a VM opcode
  
  Overloads the specified <strong>$opcode</strong> with the user defined function

<comment>Param:</comment>
  <info>int</info>       <strong>$opcode</strong>    A valid opcode, see constants for details of supported codes
  <info>Callable</info>  <strong>$callable</strong>  

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


id: uopz_redefine
type: function
doc:
<comment>Description:</comment>
  Redefine a constant
  
  Redefines the given <strong>$constant</strong> as <strong>$value</strong>

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class containing the constant
  <info>string</info>  <strong>$constant</strong>  The name of the constant
  <info>mixed</info>   <strong>$value</strong>     The new value for the constant, must be a valid type for a constant variable

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


id: uopz_rename
type: function
doc:
<comment>Description:</comment>
  Rename a function at runtime
  
  Renames <strong>$function</strong> to <strong>$rename</strong>
  
  If both functions exist, this effectively swaps their names

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class containing the function
  <info>string</info>  <strong>$function</strong>  The name of an existing function
  <info>string</info>  <strong>$rename</strong>    The new name for the function

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


id: uopz_restore
type: function
doc:
<comment>Description:</comment>
  Restore a previously backed up function
  
  Restore a previously backed up function

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class containing the function to restore
  <info>string</info>  <strong>$function</strong>  The name of the function

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


id: uopz_set_hook
type: function
doc:
<comment>Description:</comment>
  Sets hook to execute when entering a function or method
  
  Sets a hook to execute when entering a function or method.

<comment>Param:</comment>
  <info>string</info>   <strong>$class</strong>     The name of the class.
  <info>string</info>   <strong>$function</strong>  The name of the function or method.
  <info>Closure</info>  <strong>$hook</strong>      A closure to execute when entering the function or method.

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

<comment>See Also:</comment>
   * <strong>uopz_get_hook()</strong>
   * <strong>uopz_unset_hook()</strong>


id: uopz_set_mock
type: function
doc:
<comment>Description:</comment>
  Use mock instead of class for new objects
  
  If <strong>$mock</strong> is a string containing the name of a class then it will be instantiated instead of
  <strong>$class</strong>. <strong>$mock</strong> can also be an object.
  
  Only dynamic access to properties and methods will use the <strong>$mock</strong> object. Static access still uses
  the original <strong>$class</strong>. See example below.

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>  The name of the class to be mocked.
  <info>mixed</info>   <strong>$mock</strong>   The mock to use in the form of a string containing the name of the class to use or
                  an object. If a string is passed, it has to be the fully qualified class name. It
                  is recommended to use the ::class magic constant in this case.

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

<comment>See Also:</comment>
   * <strong>uopz_get_mock()</strong>
   * <strong>uopz_unset_mock()</strong>


id: uopz_set_property
type: function
doc:
<comment>Description:</comment>
  Sets value of existing class or instance property
  
  Sets the value of an existing static class property, if <strong>$class</strong> is given, or the value of an
  instance property (regardless whether the instance property already exists), if <strong>$instance</strong> is
  given.

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class.
  <info>object</info>  <strong>$instance</strong>  The object instance.
  <info>string</info>  <strong>$property</strong>  The name of the property.
  <info>mixed</info>   <strong>$value</strong>     The value to assign to the property.

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

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


id: uopz_set_return
type: function
doc:
<comment>Description:</comment>
  Provide a return value for an existing function
  
  Sets the return value of the <strong>$function</strong> to <strong>$value</strong>. If <strong>$value</strong> is a Closure and <strong>$execute</strong> is set, the
  Closure will be executed in place of the original function. It is possible to call the original
  function from the Closure.
  
  This function replaces uopz_rename.

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class containing the function
  <info>string</info>  <strong>$function</strong>  The name of an existing function
  <info>mixed</info>   <strong>$value</strong>     The value the function should return. If a Closure is provided and the execute
                     flag is set, the Closure will be executed in place of the original function.
  <info>bool</info>    <strong>$execute</strong>   If true, and a Closure was provided as the value, the Closure will be executed
                     in place of the original function.

<comment>Return:</comment>
  <info>bool</info>  True if succeeded, false otherwise.


id: uopz_set_static
type: function
doc:
<comment>Description:</comment>
  Sets the static variables in function or method scope
  
  Sets the static variables in function or method scope.

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class.
  <info>string</info>  <strong>$function</strong>  The name of the function or method.
  <info>array</info>   <strong>$static</strong>    The associative <info>array</info> of variable names mapped to their values.

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

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


id: uopz_undefine
type: function
doc:
<comment>Description:</comment>
  Undefine a constant
  
  Removes the constant at runtime

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>     The name of the class containing <strong>$constant</strong>
  <info>string</info>  <strong>$constant</strong>  The name of an existing constant

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


id: uopz_unset_hook
type: function
doc:
<comment>Description:</comment>
  Removes previously set hook on function or method
  
  Removes the previously set hook on a function or method.

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

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

<comment>See Also:</comment>
   * <strong>uopz_set_hook()</strong>
   * <strong>uopz_get_hook()</strong>


id: uopz_unset_mock
type: function
doc:
<comment>Description:</comment>
  Unset previously set mock
  
  Unsets the previously set mock for <strong>$class</strong>.

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

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

<comment>See Also:</comment>
   * <strong>uopz_set_mock()</strong>
   * <strong>uopz_get_mock()</strong>


id: uopz_unset_return
type: function
doc:
<comment>Description:</comment>
  Unsets a previously set return value for a function
  
  Unsets the return value of the <strong>$function</strong> previously set by uopz_set_return.

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

<comment>Return:</comment>
  <info>bool</info>  True on success


id: urldecode
type: function
doc:
<comment>Description:</comment>
  Decodes URL-encoded string
  
  Decodes any <return>%##</return> encoding in the given string. Plus symbols ('<return>+</return>') are decoded to a space character.

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

<comment>Return:</comment>
  <info>string</info>  Returns the decoded string.

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


id: urlencode
type: function
doc:
<comment>Description:</comment>
  URL-encodes string
  
  This function is convenient when encoding a string to be used in a query part of a URL, as a
  convenient way to pass variables to the next page.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The string 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 and spaces encoded as plus (<return>+</return>) signs.
          It is encoded the same way that the posted data from a WWW form is encoded, that is the
          same way as in <return>application/x-www-form-urlencoded</return> media type. This differs from the RFC
          3986 encoding (see <strong>rawurlencode()</strong>) in that for historical reasons, spaces are encoded as
          plus (+) signs.

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


id: use_soap_error_handler
type: function
doc:
<comment>Description:</comment>
  Set whether to use the SOAP error handler
  
  This function sets whether or not to use the SOAP error handler in the SOAP server.  It will
  return the previous value. If set to <info>true</info>, details of errors in a <class>SoapServer</class> application will be
  sent to the client as a SOAP fault message. If <info>false</info>, the standard PHP error handler is used. The
  default is to send error to the client as SOAP fault message.

<comment>Param:</comment>
  <info>bool</info>  <strong>$enable</strong>  Set to <info>true</info> to send error details to clients.

<comment>Return:</comment>
  <info>bool</info>  Returns the original value.

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


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


id: usleep
type: function
doc:
<comment>Description:</comment>
  Delay execution in microseconds
  
  Delays program execution for the given number of microseconds.

<comment>Param:</comment>
  <info>int</info>  <strong>$microseconds</strong>  Halt time in microseconds. A microsecond is one millionth of a second.
                      
                      Values larger than <return>1000000</return> (i.e. sleeping for more than a second) may not be
                      supported by the operating system. Use <strong>sleep()</strong> instead.
                      
                      The sleep may be lengthened slightly (i.e. may be longer than <strong>$microseconds</strong>)
                      by any system activity or by the time spent processing the call or by the
                      granularity of system timers.

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

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


id: usort
type: function
doc:
<comment>Description:</comment>
  Sort an array by values using a user-defined comparison function
  
  Sorts <strong>$array</strong> in place by values using a user-supplied comparison function to determine the order.
  
  If two members compare as equal, they retain their original order. Prior to PHP 8.0.0, their
  relative order in the sorted array was undefined.
  
  This function
  assigns new keys to the elements in <strong>$array</strong>.
  It will remove any existing keys that may have been assigned, rather
  than just reordering the keys.

<comment>Param:</comment>
  <info>array</info>     <strong>$array</strong>     The input array.
  <info>callable</info>  <strong>$callback</strong>  The comparison function must return an integer less than, equal to, or
                       greater than zero if the first argument is considered to be respectively less
                       than, equal to, or greater than the second.
                       
                       Returning non-integer values from the comparison function, such as <info>float</info>,
                       will result in an internal cast to <info>int</info> of the callback's return value. So
                       values such as <return>0.99</return> and <return>0.1</return> will both be cast to an integer value of <return>0</return>, which
                       will compare such values as equal.

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

<comment>See Also:</comment>
   * <strong>uasort()</strong>
   * <strong>uksort()</strong>
   * The comparison of array sorting functions


id: utf8_decode
type: function
doc:
<comment>Description:</comment>
  Converts a string from UTF-8 to ISO-8859-1, replacing invalid or unrepresentable
     characters
    
  
  This function converts the string <strong>$string</strong> from the <return>UTF-8</return> encoding to <return>ISO-8859-1</return>. Bytes in the
  string which are not valid <return>UTF-8</return>, and <return>UTF-8</return> characters which do not exist in <return>ISO-8859-1</return> (that is,
  code points above <return>U+00FF</return>) are replaced with <return>?</return>.
  
  Many web pages marked as using the <return>ISO-8859-1</return> character encoding actually use the similar
  <return>Windows-1252</return> encoding, and web browsers will interpret <return>ISO-8859-1</return> web pages as <return>Windows-1252</return>.
  <return>Windows-1252</return> features additional printable characters, such as the Euro sign (<return>€</return>) and curly quotes
  (<return>“</return> <return>”</return>), instead of certain <return>ISO-8859-1</return> control characters. This function will not convert such
  <return>Windows-1252</return> characters correctly. Use a different function if <return>Windows-1252</return> conversion is
  required.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  A UTF-8 encoded string.

<comment>Return:</comment>
  <info>string</info>  Returns the ISO-8859-1 translation of <strong>$string</strong>.

<comment>See Also:</comment>
   * <strong>utf8_encode()</strong>
   * <strong>mb_convert_encoding()</strong>
   * UConverter::transcode
   * <strong>iconv()</strong>


id: utf8_encode
type: function
doc:
<comment>Description:</comment>
  Converts a string from ISO-8859-1 to UTF-8
  
  This function converts the string <strong>$string</strong> from the <return>ISO-8859-1</return> encoding to <return>UTF-8</return>.
  
  This function does not attempt to guess the current encoding of the provided string, it assumes it
  is encoded as ISO-8859-1 (also known as "Latin 1") and converts to UTF-8. Since every sequence of
  bytes is a valid ISO-8859-1 string, this never results in an error, but will not result in a
  useful string if a different encoding was intended.
  
  Many web pages marked as using the <return>ISO-8859-1</return> character encoding actually use the similar
  <return>Windows-1252</return> encoding, and web browsers will interpret <return>ISO-8859-1</return> web pages as <return>Windows-1252</return>.
  <return>Windows-1252</return> features additional printable characters, such as the Euro sign (<return>€</return>) and curly quotes
  (<return>“</return> <return>”</return>), instead of certain <return>ISO-8859-1</return> control characters. This function will not convert such
  <return>Windows-1252</return> characters correctly. Use a different function if <return>Windows-1252</return> conversion is
  required.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  An ISO-8859-1 string.

<comment>Return:</comment>
  <info>string</info>  Returns the UTF-8 translation of <strong>$string</strong>.

<comment>See Also:</comment>
   * <strong>utf8_decode()</strong>
   * <strong>mb_convert_encoding()</strong>
   * UConverter::transcode
   * <strong>iconv()</strong>


id: var_dump
type: function
doc:
<comment>Description:</comment>
  Dumps information about a variable
  
  This function displays structured information about one or more expressions that includes its type
  and value. Arrays and objects are explored recursively with values indented to show structure.
  
  All public, private and protected properties of objects will be returned in the output unless the
  object implements a __debugInfo() method.
  
  As with anything that outputs
  its result directly to the browser, the output-control functions can be used to capture
  the output of this function, and save it in a
  <info>string</info> (for example).

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>   The expression to dump.
  <info>mixed</info>  <strong>$values</strong>  Further expressions to dump.

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

<comment>See Also:</comment>
   * <strong>print_r()</strong>
   * <strong>debug_zval_dump()</strong>
   * <strong>var_export()</strong>
   * __debugInfo()


id: var_export
type: function
doc:
<comment>Description:</comment>
  Outputs or returns a parsable string representation of a variable
  
  <strong>var_export()</strong> gets structured information about the  given variable. It is similar to <strong>var_dump()</strong>
  with one exception: the returned representation is valid PHP code.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>   The variable you want to export.
  <info>bool</info>   <strong>$return</strong>  If used and set to <info>true</info>, <strong>var_export()</strong> will return the variable representation
                  instead of outputting it.

<comment>Return:</comment>
  <info>string|null</info>  Returns the variable representation when the <strong>$return</strong>  parameter is used and evaluates
               to <info>true</info>. Otherwise, this function will return <info>null</info>.

<comment>See Also:</comment>
   * <strong>print_r()</strong>
   * <strong>serialize()</strong>
   * <strong>var_dump()</strong>


id: var_representation
type: function
doc:
<comment>Description:</comment>
  Returns a short, readable, parsable string representation of a variable
  
  <strong>var_representation()</strong> (from the var_representation PECL) returns a string with structured
  information about the  given variable. It is similar to <strong>var_export()</strong> with differences in
  indentation, string escaping, and array representations.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable to generate a representation of.
  <info>int</info>    <strong>$flags</strong>  Bitmask consisting of <info>VAR_REPRESENTATION_SINGLE_LINE</info>,
                 <info>VAR_REPRESENTATION_UNESCAPED</info>. The behaviour of these constants is described on the
                 var_representation constants page.

<comment>Return:</comment>
  <info>string</info>  Returns the variable representation.

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


id: variant
type: class
doc:
<comment>Description:</comment>
  The VARIANT is COM's equivalent of the PHP zval; it is a structure that can contain a value with a
  range of different possible types.  The variant class provided by the COM extension allows you to
  have more control over the way that PHP passes values to and from COM.


id: variant::__construct
type: function
doc:
<comment>Description:</comment>
  variant class constructor
  
  Constructs a new variant object.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>     Initial value. If omitted, or set to <info>null</info> an VT_EMPTY object is created.
  <info>int</info>    <strong>$type</strong>      Specifies the content type of the variant object. Possible values are one of the
                    <info>VT_XXX</info> .
                    
                    PHP can detect parameters passed by reference automatically; they do not even
                    need to be passed as variant objects.
                    
                    Consult the MSDN library for additional information on the VARIANT type.
  <info>int</info>    <strong>$codepage</strong>  Specifies the codepage that is used to convert strings to unicode.  See the
                    parameter of the same name in the  class for more information.


id: variant_abs
type: function
doc:
<comment>Description:</comment>
  Returns the absolute value of a variant
  
  Returns the absolute value of a variant.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variant.

<comment>Return:</comment>
  <info>variant</info>  Returns the absolute value of <strong>$value</strong>.

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


id: variant_add
type: function
doc:
<comment>Description:</comment>
  "Adds" two variant values together and returns the result
  
  Adds <strong>$left</strong> to <strong>$right</strong> using the following rules (taken from the MSDN library), which correspond to
  those of Visual Basic: Variant Addition RulesIfThenBoth expressions are of the string
  typeConcatenationOne expression is a string type and the other a characterAdditionOne expression
  is numeric and the other is a stringAdditionBoth expressions are numericAdditionEither expression
  is NULLNULL is returnedBoth expressions are emptyInteger subtype is returned

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Returns the result.

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


id: variant_and
type: function
doc:
<comment>Description:</comment>
  Performs a bitwise AND operation between two variants
  
  Performs a bitwise AND operation. Note that this is slightly different from a regular AND
  operation.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Variant AND RulesIf <strong>$left</strong> isIf <strong>$right</strong> isthen the result
           is<info>true</info><info>true</info><info>true</info><info>true</info><info>false</info><info>false</info><info>true</info><info>null</info><info>null</info><info>false</info><info>true</info><info>false</info><info>false</info><info>false</info><info>false</info><info>false</info><info>null</info><info>false</info><info>null</info><info>true</info><info>null</info><info>null</info><info>false</info><info>false</info><info>null</info><info>null</info><info>null</info>

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


id: variant_cast
type: function
doc:
<comment>Description:</comment>
  Convert a variant into a new variant object of another type
  
  This function makes a copy of <strong>$variant</strong> and then performs a variant cast operation to force the
  copy to have the type given by <strong>$type</strong>.
  
  This function wraps VariantChangeType() in the COM library; consult MSDN for more information.

<comment>Param:</comment>
  <info>variant</info>  <strong>$variant</strong>  The variant.
  <info>int</info>      <strong>$type</strong>     <strong>$type</strong> should be one of the <info>VT_XXX</info> constants.

<comment>Return:</comment>
  <info>variant</info>  Returns a variant of given <strong>$type</strong>.

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


id: variant_cat
type: function
doc:
<comment>Description:</comment>
  Concatenates two variant values together and returns the result
  
  Concatenates <strong>$left</strong> with <strong>$right</strong> and returns the result.
  
  This function is notionally equivalent to <strong>$left</strong> <return>.</return> <strong>$right</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Returns the result of the concatenation.

<comment>See Also:</comment>
   *  for the string
   concatenation operator


id: variant_cmp
type: function
doc:
<comment>Description:</comment>
  Compares two variants
  
  Compares <strong>$left</strong> with <strong>$right</strong>.
  
  This function will only compare scalar values, not arrays or variant records.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>       The left operand.
  <info>mixed</info>  <strong>$right</strong>      The right operand.
  <info>int</info>    <strong>$locale_id</strong>  A valid Locale Identifier to use when comparing strings (this affects string
                     collation).
  <info>int</info>    <strong>$flags</strong>      <strong>$flags</strong> can be one or more of the following values OR'd together, and affects
                     string comparisons: Variant Comparision Flagsvaluemeaning<info>NORM_IGNORECASE</info>Compare
                     case insensitively<info>NORM_IGNORENONSPACE</info>Ignore nonspacing
                     characters<info>NORM_IGNORESYMBOLS</info>Ignore symbols<info>NORM_IGNOREWIDTH</info>Ignore string
                     width<info>NORM_IGNOREKANATYPE</info>Ignore Kana type<info>NORM_IGNOREKASHIDA</info>Ignore Arabic kashida
                     characters

<comment>Return:</comment>
  <info>int</info>  Returns one of the following: Variant Comparision Resultsvaluemeaning<info>VARCMP_LT</info><strong>$left</strong> is less
       than <strong>$right</strong> <info>VARCMP_EQ</info><strong>$left</strong> is equal to <strong>$right</strong> <info>VARCMP_GT</info><strong>$left</strong> is greater than <strong>$right</strong>
       <info>VARCMP_NULL</info>Either <strong>$left</strong>, <strong>$right</strong> or both are <info>null</info>


id: variant_date_from_timestamp
type: function
doc:
<comment>Description:</comment>
  Returns a variant date representation of a Unix timestamp
  
  Converts <strong>$timestamp</strong> from a unix timestamp value into a variant of type <info>VT_DATE</info>.  This allows
  easier interopability between the unix-ish parts of PHP and COM.

<comment>Param:</comment>
  <info>int</info>  <strong>$timestamp</strong>  A unix timestamp.

<comment>Return:</comment>
  <info>variant</info>  Returns a <info>VT_DATE</info> variant.

<comment>See Also:</comment>
   * <strong>variant_date_to_timestamp()</strong>
   * <strong>mktime()</strong>
   * <strong>time()</strong>


id: variant_date_to_timestamp
type: function
doc:
<comment>Description:</comment>
  Converts a variant date/time value to Unix timestamp
  
  Converts <strong>$variant</strong> from a <info>VT_DATE</info> (or similar) value into a Unix timestamp.  This allows easier
  interopability between the Unix-ish parts of PHP and COM.

<comment>Param:</comment>
  <info>variant</info>  <strong>$variant</strong>  The variant.

<comment>Return:</comment>
  <info>int|null</info>  Returns a unix timestamp, or <info>null</info> on failure.

<comment>See Also:</comment>
   * <strong>variant_date_from_timestamp()</strong>
   * <strong>date()</strong>
   * <strong>strftime()</strong>


id: variant_div
type: function
doc:
<comment>Description:</comment>
  Returns the result from dividing two variants
  
  Divides <strong>$left</strong> by <strong>$right</strong> and returns the result.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Variant Division RulesIfThenBoth expressions are of the string, date, character, boolean
           typeDouble is returnedOne expression is a string type and the other a characterDivision
           and a double is returnedOne expression is numeric and the other is a stringDivision and a
           double is returned.Both expressions are numericDivision and a double is returnedEither
           expression is NULLNULL is returned<strong>$right</strong> is empty and <strong>$left</strong> is anything but emptyA
           <class>com_exception</class> with code <info>DISP_E_DIVBYZERO</info> is thrown<strong>$left</strong> is empty and <strong>$right</strong> is anything
           but empty.0 as type double is returnedBoth expressions are emptyA <class>com_exception</class> with code
           <info>DISP_E_OVERFLOW</info> is thrown

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


id: variant_eqv
type: function
doc:
<comment>Description:</comment>
  Performs a bitwise equivalence on two variants
  
  Performs a bitwise equivalence on two variants.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  If each bit in <strong>$left</strong> is equal to the corresponding bit in <strong>$right</strong> then <info>true</info> is returned,
           otherwise <info>false</info> is returned.


id: variant_fix
type: function
doc:
<comment>Description:</comment>
  Returns the integer portion of a variant
  
  Gets the integer portion of a variant.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variant.

<comment>Return:</comment>
  <info>variant</info>  If <strong>$value</strong> is negative, then the first negative integer greater than or equal to the
           variant is returned, otherwise returns the integer portion of the value of <strong>$value</strong>.

<comment>See Also:</comment>
   * <strong>variant_int()</strong>
   * <strong>variant_round()</strong>
   * <strong>floor()</strong>
   * <strong>ceil()</strong>
   * <strong>round()</strong>


id: variant_get_type
type: function
doc:
<comment>Description:</comment>
  Returns the type of a variant object
  
  Returns the type of a variant object.

<comment>Param:</comment>
  <info>variant</info>  <strong>$variant</strong>  The variant object.

<comment>Return:</comment>
  <info>int</info>  This function returns an integer value that indicates the type of <strong>$variant</strong>, which can be an
       instance of ,  or  classes.  The return value can be compared to one of the <info>VT_XXX</info> constants.
       
       The return value for COM and DOTNET objects will usually be <info>VT_DISPATCH</info>; the only reason this
       function works for those classes is because COM and DOTNET are descendants of VARIANT.

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


id: variant_idiv
type: function
doc:
<comment>Description:</comment>
  Converts variants to integers and then returns the result from dividing them
  
  Converts <strong>$left</strong> and <strong>$right</strong> to integer values, and then performs integer division.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Variant Integer Division RulesIfThenBoth expressions are of the string, date, character,
           boolean typeDivision and integer is returnedOne expression is a string type and the other
           a characterDivisionOne expression is numeric and the other is a stringDivisionBoth
           expressions are numericDivisionEither expression is NULLNULL is returnedBoth expressions
           are emptyA <class>com_exception</class> with code <info>DISP_E_DIVBYZERO</info> is thrown

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


id: variant_imp
type: function
doc:
<comment>Description:</comment>
  Performs a bitwise implication on two variants
  
  Performs a bitwise implication operation.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Variant Implication TableIf <strong>$left</strong> isIf <strong>$right</strong> isthen the result
           is<info>true</info><info>true</info><info>true</info><info>true</info><info>false</info><info>false</info><info>true</info><info>null</info><info>true</info><info>false</info><info>true</info><info>true</info><info>false</info><info>false</info><info>true</info><info>false</info><info>null</info><info>true</info><info>null</info><info>true</info><info>true</info><info>null</info><info>false</info><info>null</info><info>null</info><info>null</info><info>null</info>


id: variant_int
type: function
doc:
<comment>Description:</comment>
  Returns the integer portion of a variant
  
  Gets the integer portion of a variant.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variant.

<comment>Return:</comment>
  <info>variant</info>  If <strong>$value</strong> is negative, then the first negative integer greater than or equal to the
           variant is returned, otherwise returns the integer portion of the value of <strong>$value</strong>.

<comment>See Also:</comment>
   * <strong>variant_fix()</strong>
   * <strong>variant_round()</strong>
   * <strong>floor()</strong>
   * <strong>ceil()</strong>
   * <strong>round()</strong>


id: variant_mod
type: function
doc:
<comment>Description:</comment>
  Divides two variants and returns only the remainder
  
  Divides <strong>$left</strong> by <strong>$right</strong> and returns the remainder.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Returns the remainder of the division.

<comment>See Also:</comment>
   * <strong>variant_div()</strong>
   * <strong>variant_idiv()</strong>


id: variant_mul
type: function
doc:
<comment>Description:</comment>
  Multiplies the values of the two variants
  
  Multiplies <strong>$left</strong> by <strong>$right</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Variant Multiplication RulesIfThenBoth expressions are of the string, date, character,
           boolean typeMultiplicationOne expression is a string type and the other a
           characterMultiplicationOne expression is numeric and the other is a
           stringMultiplicationBoth expressions are numericMultiplicationEither expression is
           NULLNULL is returnedBoth expressions are emptyEmpty string is returned

<comment>See Also:</comment>
   * <strong>variant_div()</strong>
   * <strong>variant_idiv()</strong>


id: variant_neg
type: function
doc:
<comment>Description:</comment>
  Performs logical negation on a variant
  
  Performs logical negation of <strong>$value</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variant.

<comment>Return:</comment>
  <info>variant</info>  Returns the result of the logical negation.


id: variant_not
type: function
doc:
<comment>Description:</comment>
  Performs bitwise not negation on a variant
  
  Performs bitwise not negation on <strong>$value</strong> and returns the result.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variant.

<comment>Return:</comment>
  <info>variant</info>  Returns the bitwise not negation. If <strong>$value</strong> is <info>null</info>, the result will also be <info>null</info>.


id: variant_or
type: function
doc:
<comment>Description:</comment>
  Performs a logical disjunction on two variants
  
  Performs a bitwise OR operation. Note that this is slightly different from a regular OR operation.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Variant OR RulesIf <strong>$left</strong> isIf <strong>$right</strong> isthen the result
           is<info>true</info><info>true</info><info>true</info><info>true</info><info>false</info><info>true</info><info>true</info><info>null</info><info>true</info><info>false</info><info>true</info><info>true</info><info>false</info><info>false</info><info>false</info><info>false</info><info>null</info><info>null</info><info>null</info><info>true</info><info>true</info><info>null</info><info>false</info><info>null</info><info>null</info><info>null</info><info>null</info>

<comment>See Also:</comment>
   * <strong>variant_and()</strong>
   * <strong>variant_xor()</strong>


id: variant_pow
type: function
doc:
<comment>Description:</comment>
  Returns the result of performing the power function with two variants
  
  Returns the result of <strong>$left</strong> to the power of <strong>$right</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Returns the result of <strong>$left</strong> to the power of <strong>$right</strong>.

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


id: variant_round
type: function
doc:
<comment>Description:</comment>
  Rounds a variant to the specified number of decimal places
  
  Returns the value of <strong>$value</strong> rounded to <strong>$decimals</strong> decimal places.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>     The variant.
  <info>int</info>    <strong>$decimals</strong>  Number of decimal places.

<comment>Return:</comment>
  <info>variant|null</info>  Returns the rounded value, or <info>null</info> on failure.

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


id: variant_set
type: function
doc:
<comment>Description:</comment>
  Assigns a new value for a variant object
  
  Converts <strong>$value</strong> to a variant and assigns it to the <strong>$variant</strong> object; no new variant object is
  created, and the old value of <strong>$variant</strong> is freed/released.

<comment>Param:</comment>
  <info>variant</info>  <strong>$variant</strong>  The variant.
  <info>mixed</info>    <strong>$value</strong>    

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


id: variant_set_type
type: function
doc:
<comment>Description:</comment>
  Convert a variant into another type "in-place"
  
  This function is similar to <strong>variant_cast()</strong> except that the variant is modified "in-place"; no new
  variant is created. The parameters for this function have identical meaning to those of
  <strong>variant_cast()</strong>.

<comment>Param:</comment>
  <info>variant</info>  <strong>$variant</strong>  The variant.
  <info>int</info>      <strong>$type</strong>     

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

<comment>See Also:</comment>
   * <strong>variant_cast()</strong>
   * <strong>variant_get_type()</strong>


id: variant_sub
type: function
doc:
<comment>Description:</comment>
  Subtracts the value of the right variant from the left variant value
  
  Subtracts <strong>$right</strong> from <strong>$left</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Variant Subtraction RulesIfThenBoth expressions are of the string typeSubtractionOne
           expression is a string type and the other a characterSubtractionOne expression is numeric
           and the other is a stringSubtraction.Both expressions are numericSubtractionEither
           expression is NULLNULL is returnedBoth expressions are emptyEmpty string is returned

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


id: variant_xor
type: function
doc:
<comment>Description:</comment>
  Performs a logical exclusion on two variants
  
  Performs a logical exclusion.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$left</strong>   The left operand.
  <info>mixed</info>  <strong>$right</strong>  The right operand.

<comment>Return:</comment>
  <info>variant</info>  Variant XOR RulesIf <strong>$left</strong> isIf <strong>$right</strong> isthen the result
           is<info>true</info><info>true</info><info>false</info><info>true</info><info>false</info><info>true</info><info>false</info><info>true</info><info>true</info><info>false</info><info>false</info><info>false</info><info>null</info><info>null</info><info>null</info>

<comment>See Also:</comment>
   * <strong>variant_or()</strong>
   * <strong>variant_and()</strong>


id: version_compare
type: function
doc:
<comment>Description:</comment>
  Compares two "PHP-standardized" version number strings
  
  <strong>version_compare()</strong> compares two "PHP-standardized" version number strings.
  
  The function first replaces <return>_</return>, <return>-</return> and <return>+</return> with a dot <return>.</return> in the version strings and also inserts dots <return>.</return>
  before and after any non number so that for example '4.3.2RC1' becomes '4.3.2.RC.1'. Then it
  compares the parts starting from left to right. If a part contains special version strings these
  are handled in the following order: <return>any string not found in this list</return> \<  <return>dev</return> \< <return>alpha</return> = <return>a</return> \< <return>beta</return>
  = <return>b</return> \< <return>RC</return> =   <return>rc</return> \< <return>#</return> \< <return>pl</return> = <return>p</return>. This way not only versions with different levels like '4.1' and
  '4.1.2' can be compared but also any PHP specific version containing development state.

<comment>Param:</comment>
  <info>string</info>       <strong>$version1</strong>  First version number.
  <info>string</info>       <strong>$version2</strong>  Second version number.
  <info>string|null</info>  <strong>$operator</strong>  An optional operator. The possible operators are: <return>\<</return>, <return>lt</return>, <return>\<=</return>, <return>le</return>, <return>&gt;</return>, <return>gt</return>, <return>&gt;=</return>, <return>ge</return>, <return>==</return>, <return>=</return>, <return>eq</return>, <return>!=</return>, <return>\<&gt;</return>, <return>ne</return> respectively.
                          
                          This parameter is case-sensitive, values should be lowercase.

<comment>Return:</comment>
  <info>int|bool</info>  By default, <strong>version_compare()</strong> returns <return>-1</return> if the first version is lower than the second,
            <return>0</return> if they are equal, and <return>1</return> if the second is lower.
            
            When using the optional <strong>$operator</strong> argument, the function will return <info>true</info> if the
            relationship is the one specified by the operator, <info>false</info> otherwise.

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


id: vfprintf
type: function
doc:
<comment>Description:</comment>
  Write a formatted string to a stream
  
  Write a string produced according to <strong>$format</strong> to the stream resource specified by <strong>$stream</strong>.
  
  Operates as <strong>fprintf()</strong> but accepts an array of arguments, rather than a variable number of
  arguments.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  
  <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>array</info>     <strong>$values</strong>  

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

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


id: virtual
type: function
doc:
<comment>Description:</comment>
  Perform an Apache sub-request
  
  <strong>virtual()</strong> is an Apache-specific function which is similar to <return>\<!--#include virtual...--&gt;</return> in <return>mod_include</return>. It performs an Apache sub-request.  It is useful for including CGI scripts or .shtml files, or anything else that you would parse through Apache. Note that for a CGI script, the script must generate valid CGI headers.  At the minimum that means it must generate a <return>Content-Type</return> header.
  
  To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are
  sent too.
  
  This function is supported when PHP
  is installed as an Apache module webserver.

<comment>Param:</comment>
  <info>string</info>  <strong>$uri</strong>  The file that the virtual command will be performed on.

<comment>Return:</comment>
  <info>bool</info>  Performs the virtual command on success, or returns <info>false</info> on failure.

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


id: vprintf
type: function
doc:
<comment>Description:</comment>
  Output a formatted string
  
  Display array values as a formatted string according to <strong>$format</strong> (which is described in the
  documentation for <strong>sprintf()</strong>).
  
  Operates as <strong>printf()</strong> but accepts an array of arguments, rather than a variable number of
  arguments.

<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>array</info>   <strong>$values</strong>  

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

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


id: vsprintf
type: function
doc:
<comment>Description:</comment>
  Return a formatted string
  
  Operates as <strong>sprintf()</strong> but accepts an array of arguments, rather than a variable number of
  arguments.

<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>array</info>   <strong>$values</strong>  

<comment>Return:</comment>
  <info>string</info>  Return array values as a formatted string according to <strong>$format</strong>.

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


id: wddx_add_vars
type: function
doc:
<comment>Description:</comment>
  Add variables to a WDDX packet with the specified ID
  
  Serializes the passed variables and add the result to the given packet.

<comment>Param:</comment>
  <info>resource</info>  <strong>$packet_id</strong>  A WDDX packet, returned by <strong>wddx_packet_start()</strong>.
  <info>mixed</info>     <strong>$var_name</strong>   Can be either a string naming a variable or an array containing strings
                        naming the variables or another array, etc.
  <info>mixed</info>     <strong>$var_names</strong>  

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


id: wddx_deserialize
type: function
doc:
<comment>Description:</comment>
  Unserializes a WDDX packet
  
  Unserializes a WDDX <strong>$packet</strong>.
  
  Do not pass untrusted user input to <strong>wddx_deserialize()</strong>. Unserialization can result in code being
  loaded and executed due to object instantiation and autoloading, and a malicious user may be able
  to exploit this. Use a safe, standard data interchange format such as JSON (via <strong>json_decode()</strong> and
  <strong>json_encode()</strong>) if you need to pass serialized data to the user.

<comment>Param:</comment>
  <info>string</info>  <strong>$packet</strong>  A WDDX packet, as a string or stream.

<comment>Return:</comment>
  <info>mixed</info>  Returns the deserialized value which can be a string, a number or an array. Note that
         structures are deserialized into associative arrays.


id: wddx_packet_end
type: function
doc:
<comment>Description:</comment>
  Ends a WDDX packet with the specified ID
  
  Ends and returns the given WDDX packet.

<comment>Param:</comment>
  <info>resource</info>  <strong>$packet_id</strong>  A WDDX packet, returned by <strong>wddx_packet_start()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns the string containing the WDDX packet.


id: wddx_packet_start
type: function
doc:
<comment>Description:</comment>
  Starts a new WDDX packet with structure inside it
  
  Start a new WDDX packet for incremental addition of variables. It automatically creates a
  structure definition inside the packet to contain the variables.

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

<comment>Return:</comment>
  <info>resource</info>  Returns a packet ID for use in later functions, or <info>false</info> on error.


id: wddx_serialize_value
type: function
doc:
<comment>Description:</comment>
  Serialize a single value into a WDDX packet
  
  Creates a WDDX packet from a single given value.

<comment>Param:</comment>
  <info>mixed</info>   <strong>$var</strong>      The value to be serialized
  <info>string</info>  <strong>$comment</strong>  An optional comment string that appears in the packet header.

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


id: wddx_serialize_vars
type: function
doc:
<comment>Description:</comment>
  Serialize variables into a WDDX packet
  
  Creates a WDDX packet with a structure that contains the serialized representation of the passed
  variables.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$var_name</strong>   Can be either a string naming a variable or an array containing strings naming
                     the variables or another array, etc.
  <info>mixed</info>  <strong>$var_names</strong>  

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


id: win32_continue_service
type: function
doc:
<comment>Description:</comment>
  Resumes a paused service
  
  Resumes a paused, named service. Requires administrative privileges or  an account with
  appropriate rights set in the service's ACL.

<comment>Param:</comment>
  <info>string</info>  <strong>$servicename</strong>  The short name of the service.
  <info>string</info>  <strong>$machine</strong>      Optional machine name.  If omitted, the local machine is used.

<comment>Return:</comment>
  <info>void</info>  No value is returned.
        
        Prior to version 1.0.0, returned <info>WIN32_NO_ERROR</info> on success, <info>false</info> if there is a problem with
        the parameters or a Win32 Error Code on failure.

<comment>See Also:</comment>
   * <strong>win32_start_service()</strong>
   * <strong>win32_stop_service()</strong>
   * <strong>win32_pause_service()</strong>
   * <strong>win32_send_custom_control()</strong>
   * Win32 Error Codes


id: win32_create_service
type: function
doc:
<comment>Description:</comment>
  Creates a new service entry in the SCM database
  
  Attempts to add a service into the SCM database. Administrative privileges are required for this
  to succeed.

<comment>Param:</comment>
  <info>array</info>   <strong>$details</strong>                An array of service details: <strong>$service</strong> The short name of the
                                  service.  This is the name that you will use to control the
                                  service using the <return>net</return> command.  The service must be unique (no two
                                  services can share the same name), and, ideally, should avoid
                                  having spaces in the name. <strong>$display</strong>The display name of the
                                  service.  This is the name that you will see in the Services
                                  Applet. <strong>$description</strong>The long description of the service.  This is
                                  the description that you will see in the Services Applet. <strong>$user</strong>
                                  The name of the user account under which you want the service to
                                  run.  If omitted, the service will run as the LocalSystem account.
                                  If the username is specified, you must also provide a password.
                                  <strong>$password</strong> The password that corresponds to the <strong>$user</strong>. <strong>$path</strong> The
                                  full path to the executable module that will be launched when the
                                  service is started.  If omitted, the path to the current PHP
                                  process will be used. <strong>$params</strong> Command line parameters to pass to
                                  the service when it starts. If you want to run a PHP script as the
                                  service, then the first parameter should be the full path to the
                                  PHP script that you intend to run. If the script name or path
                                  contains spaces, then wrap the full path to the PHP script with <return>"</return>.
                                  <strong>$load_order</strong> Controls the load_order.  This is not yet fully
                                  supported. <strong>$svc_type</strong> Sets the service type.  If omitted, the
                                  default value is <info>WIN32_SERVICE_WIN32_OWN_PROCESS</info>. Don't change
                                  this unless you know what you're doing. <strong>$start_type</strong> Specifies how
                                  the service should be started.  The default is
                                  <info>WIN32_SERVICE_AUTO_START</info> which means the service will be launched
                                  when the machine starts up. <strong>$error_control</strong> Informs the SCM what it
                                  should do when it detects a problem with the service.  The default
                                  is <info>WIN32_SERVER_ERROR_IGNORE</info>.  Changing this value is not yet
                                  fully supported. <strong>$delayed_start</strong> If <strong>$delayed_start</strong> is set to <info>true</info>,
                                  then this will inform the SCM that this service should be started
                                  after other auto-start services are started plus a short delay.
                                  Any service can be marked as a delayed auto-start service;
                                  however, this setting has no effect unless the service's
                                  <strong>$start_type</strong> is <info>WIN32_SERVICE_AUTO_START</info>.  This setting is only
                                  applicable on Windows Vista and Windows Server 2008 or greater.
                                  <strong>$base_priority</strong> To reduce the impact on processor utilisation, it
                                  may be necessary to set a base priority lower than normal.  The
                                  <strong>$base_priority</strong> can be set to one of the constants define in Win32
                                  Base Priority Classes. <strong>$dependencies</strong> To define the dependencies
                                  for your service, it may be necessary to set  this parameter to
                                  the list of the services names in an array. <strong>$recovery_delay</strong> This
                                  parameter defines the delay between the fail and the execution  of
                                  recovery action. The value is in milliseconds.  The default value
                                  is 60000. <strong>$recovery_action_1</strong> The action will be executed on first
                                  failure. The default value is  <info>WIN32_SC_ACTION_NONE</info>.  The
                                  <strong>$recovery_action_1</strong> can be set to one of the constants defined in
                                  Win32 Recovery action. <strong>$recovery_action_2</strong> The action will be
                                  executed on second failure. The default value is
                                  <info>WIN32_SC_ACTION_NONE</info>.  The <strong>$recovery_action_2</strong> can be set to one of
                                  the constants defined in Win32 Recovery action. <strong>$recovery_action_3</strong>
                                  The action will be executed on next failures. The default value is
                                  <info>WIN32_SC_ACTION_NONE</info>.  The <strong>$recovery_action_3</strong> can be set to one of
                                  the constants defined in Win32 Recovery action.
                                  <strong>$recovery_reset_period</strong> The failure count will be reset after the
                                  delay defined in the parameter. The delay is expirement in
                                  seconds.  The default value is <return>86400</return>. <strong>$recovery_enabled</strong> Set this
                                  parameter at <info>true</info> to enable the recovery settings, <info>false</info>  to
                                  disable.   The default value is <info>false</info> <strong>$recovery_reboot_msg</strong> Set
                                  this parameter to define the message saved into the Windows Event
                                  Log before the reboot. Used only if one action is set to
                                  <info>WIN32_SC_ACTION_REBOOT</info>. <strong>$recovery_command</strong> Set this parameter to
                                  define the command executed when one action is defined on
                                  <info>WIN32_SC_ACTION_RUN_COMMAND</info>.
                                  
                                  The short name of the service.  This is the name that you will use
                                  to control the service using the <return>net</return> command.  The service must be
                                  unique (no two services can share the same name), and, ideally,
                                  should avoid having spaces in the name.
                                  
                                  The display name of the service.  This is the name that you will
                                  see in the Services Applet.
                                  
                                  The long description of the service.  This is the description that
                                  you will see in the Services Applet.
                                  
                                  The name of the user account under which you want the service to
                                  run.  If omitted, the service will run as the LocalSystem account.
                                  If the username is specified, you must also provide a password.
                                  
                                  The password that corresponds to the <strong>$user</strong>.
                                  
                                  The full path to the executable module that will be launched when
                                  the service is started.  If omitted, the path to the current PHP
                                  process will be used.
                                  
                                  Command line parameters to pass to the service when it starts. If
                                  you want to run a PHP script as the service, then the first
                                  parameter should be the full path to the PHP script that you
                                  intend to run. If the script name or path contains spaces, then
                                  wrap the full path to the PHP script with <return>"</return>.
                                  
                                  Controls the load_order.  This is not yet fully supported.
                                  
                                  Sets the service type.  If omitted, the default value is
                                  <info>WIN32_SERVICE_WIN32_OWN_PROCESS</info>. Don't change this unless you know
                                  what you're doing.
                                  
                                  Specifies how the service should be started.  The default is
                                  <info>WIN32_SERVICE_AUTO_START</info> which means the service will be launched
                                  when the machine starts up.
                                  
                                  Informs the SCM what it should do when it detects a problem with
                                  the service.  The default is <info>WIN32_SERVER_ERROR_IGNORE</info>.  Changing
                                  this value is not yet fully supported.
                                  
                                  If <strong>$delayed_start</strong> is set to <info>true</info>, then this will inform the SCM
                                  that this service should be started after other auto-start
                                  services are started plus a short delay.
                                  
                                  Any service can be marked as a delayed auto-start service;
                                  however, this setting has no effect unless the service's
                                  <strong>$start_type</strong> is <info>WIN32_SERVICE_AUTO_START</info>.
                                  
                                  This setting is only applicable on Windows Vista and Windows
                                  Server 2008 or greater.
                                  
                                  To reduce the impact on processor utilisation, it may be necessary
                                  to set a base priority lower than normal.
                                  
                                  The <strong>$base_priority</strong> can be set to one of the constants define in
                                  Win32 Base Priority Classes.
                                  
                                  To define the dependencies for your service, it may be necessary
                                  to set  this parameter to the list of the services names in an
                                  array.
                                  
                                  This parameter defines the delay between the fail and the
                                  execution  of recovery action. The value is in milliseconds.
                                  
                                  The default value is 60000.
                                  
                                  The action will be executed on first failure. The default value is
                                  <info>WIN32_SC_ACTION_NONE</info>.
                                  
                                  The <strong>$recovery_action_1</strong> can be set to one of the constants defined
                                  in Win32 Recovery action.
                                  
                                  The action will be executed on second failure. The default value
                                  is  <info>WIN32_SC_ACTION_NONE</info>.
                                  
                                  The <strong>$recovery_action_2</strong> can be set to one of the constants defined
                                  in Win32 Recovery action.
                                  
                                  The action will be executed on next failures. The default value is
                                  <info>WIN32_SC_ACTION_NONE</info>.
                                  
                                  The <strong>$recovery_action_3</strong> can be set to one of the constants defined
                                  in Win32 Recovery action.
                                  
                                  The failure count will be reset after the delay defined in the
                                  parameter. The delay is expirement in seconds.
                                  
                                  The default value is <return>86400</return>.
                                  
                                  Set this parameter at <info>true</info> to enable the recovery settings, <info>false</info>
                                  to disable.
                                  
                                  The default value is <info>false</info>
                                  
                                  Set this parameter to define the message saved into the Windows
                                  Event  Log before the reboot. Used only if one action is set to
                                  <info>WIN32_SC_ACTION_REBOOT</info>.
                                  
                                  Set this parameter to define the command executed when one action
                                  is defined on   <info>WIN32_SC_ACTION_RUN_COMMAND</info>.
  <info></info>        <strong>$service</strong>                The short name of the service.  This is the name that you will use
                                  to control the service using the <return>net</return> command.  The service must be
                                  unique (no two services can share the same name), and, ideally,
                                  should avoid having spaces in the name.
  <info></info>        <strong>$display</strong>                The display name of the service.  This is the name that you will
                                  see in the Services Applet.
  <info></info>        <strong>$description</strong>            The long description of the service.  This is the description that
                                  you will see in the Services Applet.
  <info></info>        <strong>$user</strong>                   The name of the user account under which you want the service to
                                  run.  If omitted, the service will run as the LocalSystem account.
                                  If the username is specified, you must also provide a password.
  <info></info>        <strong>$password</strong>               The password that corresponds to the <strong>$user</strong>.
  <info></info>        <strong>$path</strong>                   The full path to the executable module that will be launched when
                                  the service is started.  If omitted, the path to the current PHP
                                  process will be used.
  <info></info>        <strong>$params</strong>                 Command line parameters to pass to the service when it starts. If
                                  you want to run a PHP script as the service, then the first
                                  parameter should be the full path to the PHP script that you
                                  intend to run. If the script name or path contains spaces, then
                                  wrap the full path to the PHP script with <return>"</return>.
  <info></info>        <strong>$load_order</strong>             Controls the load_order.  This is not yet fully supported.
  <info></info>        <strong>$svc_type</strong>               Sets the service type.  If omitted, the default value is
                                  <info>WIN32_SERVICE_WIN32_OWN_PROCESS</info>. Don't change this unless you know
                                  what you're doing.
  <info></info>        <strong>$start_type</strong>             Specifies how the service should be started.  The default is
                                  <info>WIN32_SERVICE_AUTO_START</info> which means the service will be launched
                                  when the machine starts up.
  <info></info>        <strong>$error_control</strong>          Informs the SCM what it should do when it detects a problem with
                                  the service.  The default is <info>WIN32_SERVER_ERROR_IGNORE</info>.  Changing
                                  this value is not yet fully supported.
  <info></info>        <strong>$delayed_start</strong>          If <strong>$delayed_start</strong> is set to <info>true</info>, then this will inform the SCM
                                  that this service should be started after other auto-start
                                  services are started plus a short delay.
                                  
                                  Any service can be marked as a delayed auto-start service;
                                  however, this setting has no effect unless the service's
                                  <strong>$start_type</strong> is <info>WIN32_SERVICE_AUTO_START</info>.
                                  
                                  This setting is only applicable on Windows Vista and Windows
                                  Server 2008 or greater.
  <info></info>        <strong>$base_priority</strong>          To reduce the impact on processor utilisation, it may be necessary
                                  to set a base priority lower than normal.
                                  
                                  The <strong>$base_priority</strong> can be set to one of the constants define in
                                  Win32 Base Priority Classes.
  <info></info>        <strong>$dependencies</strong>           To define the dependencies for your service, it may be necessary
                                  to set  this parameter to the list of the services names in an
                                  array.
  <info></info>        <strong>$recovery_delay</strong>         This parameter defines the delay between the fail and the
                                  execution  of recovery action. The value is in milliseconds.
                                  
                                  The default value is 60000.
  <info></info>        <strong>$recovery_action_1</strong>      The action will be executed on first failure. The default value is
                                  <info>WIN32_SC_ACTION_NONE</info>.
                                  
                                  The <strong>$recovery_action_1</strong> can be set to one of the constants defined
                                  in Win32 Recovery action.
  <info></info>        <strong>$recovery_action_2</strong>      The action will be executed on second failure. The default value
                                  is  <info>WIN32_SC_ACTION_NONE</info>.
                                  
                                  The <strong>$recovery_action_2</strong> can be set to one of the constants defined
                                  in Win32 Recovery action.
  <info></info>        <strong>$recovery_action_3</strong>      The action will be executed on next failures. The default value is
                                  <info>WIN32_SC_ACTION_NONE</info>.
                                  
                                  The <strong>$recovery_action_3</strong> can be set to one of the constants defined
                                  in Win32 Recovery action.
  <info></info>        <strong>$recovery_reset_period</strong>  The failure count will be reset after the delay defined in the
                                  parameter. The delay is expirement in seconds.
                                  
                                  The default value is <return>86400</return>.
  <info></info>        <strong>$recovery_enabled</strong>       Set this parameter at <info>true</info> to enable the recovery settings, <info>false</info>
                                  to disable.
                                  
                                  The default value is <info>false</info>
  <info></info>        <strong>$recovery_reboot_msg</strong>    Set this parameter to define the message saved into the Windows
                                  Event  Log before the reboot. Used only if one action is set to
                                  <info>WIN32_SC_ACTION_REBOOT</info>.
  <info></info>        <strong>$recovery_command</strong>       Set this parameter to define the command executed when one action
                                  is defined on   <info>WIN32_SC_ACTION_RUN_COMMAND</info>.
  <info>string</info>  <strong>$machine</strong>                The optional machine name on which you want to create a service.
                                  If omitted, it will use the local machine.

<comment>Return:</comment>
  <info>void</info>  No value is returned.
        
        Prior to version 1.0.0, returned <info>WIN32_NO_ERROR</info> on success, <info>false</info> if there is a problem with
        the parameters or a Win32 Error Code on failure.

<comment>See Also:</comment>
   * <strong>win32_delete_service()</strong>
   * Win32 Base Priority Classes
   * Win32 Recovery action
   * Win32 Error Codes


id: win32_delete_service
type: function
doc:
<comment>Description:</comment>
  Deletes a service entry from the SCM database
  
  Attempts to delete a service from the SCM database.  Administrative privileges are required for
  this to succeed.
  
  This function really just marks the service for deletion.  If other processes (such as the
  Services Applet) are open, then the deletion will be deferred until those applications are closed.
  If a service is marked for deletion, further attempts to delete it will fail, and attempts to
  create a new service with that name will also fail.

<comment>Param:</comment>
  <info>string</info>  <strong>$servicename</strong>  The short name of the service.
  <info>string</info>  <strong>$machine</strong>      The optional machine name.  If omitted, the local machine will be used.

<comment>Return:</comment>
  <info>void</info>  No value is returned.
        
        Prior to version 1.0.0, returned <info>WIN32_NO_ERROR</info> on success, <info>false</info> if there is a problem with
        the parameters or a Win32 Error Code on failure.

<comment>See Also:</comment>
   * <strong>win32_create_service()</strong>
   * Win32 Error Codes


id: win32_get_last_control_message
type: function
doc:
<comment>Description:</comment>
  Returns the last control message that was sent to this service
  
  Returns the control code that was last sent to this service process. When running as a service you
  should periodically check this to determine if your service needs to stop running.
  
  Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI  this function is
  disabled.

<comment>Return:</comment>
  <info>int</info>  Returns a control constant which will be one of the Win32Service Service Control Message
       Constants: <info>WIN32_SERVICE_CONTROL_CONTINUE</info>, <info>WIN32_SERVICE_CONTROL_DEVICEEVENT</info>,
       <info>WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE</info>, <info>WIN32_SERVICE_CONTROL_INTERROGATE</info>,
       <info>WIN32_SERVICE_CONTROL_NETBINDADD</info>, <info>WIN32_SERVICE_CONTROL_NETBINDDISABLE</info>,
       <info>WIN32_SERVICE_CONTROL_NETBINDENABLE</info>, <info>WIN32_SERVICE_CONTROL_NETBINDREMOVE</info>,
       <info>WIN32_SERVICE_CONTROL_PARAMCHANGE</info>, <info>WIN32_SERVICE_CONTROL_PAUSE</info>,
       <info>WIN32_SERVICE_CONTROL_POWEREVENT</info>, <info>WIN32_SERVICE_CONTROL_PRESHUTDOWN</info>,
       <info>WIN32_SERVICE_CONTROL_SESSIONCHANGE</info>, <info>WIN32_SERVICE_CONTROL_SHUTDOWN</info>,
       <info>WIN32_SERVICE_CONTROL_STOP</info>.
       
       If the value is between 128 and 255, the control code is custom.

<comment>See Also:</comment>
   * <strong>win32_start_service_ctrl_dispatcher()</strong>
   * <strong>win32_set_service_status()</strong>
   * <strong>win32_set_service_exit_mode()</strong>
   * <strong>win32_set_service_exit_code()</strong>
   * Win32Service Service Control Message Constants


id: win32_pause_service
type: function
doc:
<comment>Description:</comment>
  Pauses a service
  
  Pauses a named service. Requires administrative privileges or an account with appropriate rights
  set in the service's ACL.

<comment>Param:</comment>
  <info>string</info>  <strong>$servicename</strong>  The short name of the service.
  <info>string</info>  <strong>$machine</strong>      Optional machine name.  If omitted, the local machine is used.

<comment>Return:</comment>
  <info>void</info>  No value is returned.
        
        Prior to version 1.0.0, returned <info>WIN32_NO_ERROR</info> on success, <info>false</info> if there is a problem with
        the parameters or a Win32 Error Code on failure.

<comment>See Also:</comment>
   * <strong>win32_start_service()</strong>
   * <strong>win32_stop_service()</strong>
   * <strong>win32_continue_service()</strong>
   * <strong>win32_send_custom_control()</strong>
   * Win32 Error Codes


id: win32_query_service_status
type: function
doc:
<comment>Description:</comment>
  Queries the status of a service
  
  Queries the current status for a service, returning an array of information.

<comment>Param:</comment>
  <info>string</info>  <strong>$servicename</strong>  The short name of the service.
  <info>string</info>  <strong>$machine</strong>      The optional machine name.  If omitted, the local machine will be used.

<comment>Return:</comment>
  <info>array</info>  Returns an array consisting of the following information on success
         
         Prior version 1.0.0, <info>false</info> if there is a problem with the parameters or a Win32 Error Code
         on failure.
         
         <strong>$ServiceType</strong> The dwServiceType. See Win32Service Service Type Bitmasks. <strong>$CurrentState</strong> The
         dwCurrentState. See Win32Service Service Status Constants. <strong>$ControlsAccepted</strong> Which service
         controls are accepted by the service. See Win32Service Service Control Message Accepted
         Bitmasks. <strong>$Win32ExitCode</strong> If the service exited, the return code from the process. This
         value is equal to  <info>WIN32_ERROR_SERVICE_SPECIFIC_ERROR</info>  if the exit mode is not gracefuly.
         See  Win32Service error codes and  <strong>win32_set_service_exit_mode()</strong> <strong>$ServiceSpecificExitCode</strong>
         If the service exited with an error condition, the service specific code that is logged in
         the event log is visible here. This value is equal  to the value defined by
         <strong>win32_set_service_exit_code()</strong> <strong>$CheckPoint</strong> If the service is shutting down, holds the
         current check point number. This is used by the SCM as a kind of heart-beat to detect a
         wedged service process.  The value of the check point is best interpreted in conjunction
         with the WaitHint value. <strong>$WaitHint</strong> If the service is shutting down it will set WaitHint to
         a checkpoint value that will indicate 100% completion.  This can be used to implement a
         progress indicator. <strong>$ProcessId</strong> The Windows process identifier. If 0, the process is not
         running. <strong>$ServiceFlags</strong> The dwServiceFlags. See Win32Service Service Flag Constants.
         
         The dwServiceType. See Win32Service Service Type Bitmasks.
         
         The dwCurrentState. See Win32Service Service Status Constants.
         
         Which service controls are accepted by the service. See Win32Service Service Control
         Message Accepted Bitmasks.
         
         If the service exited, the return code from the process. This value is equal to
         <info>WIN32_ERROR_SERVICE_SPECIFIC_ERROR</info>  if the exit mode is not gracefuly. See  Win32Service
         error codes and  <strong>win32_set_service_exit_mode()</strong>
         
         If the service exited with an error condition, the service specific code that is logged in
         the event log is visible here. This value is equal  to the value defined by
         <strong>win32_set_service_exit_code()</strong>
         
         If the service is shutting down, holds the current check point number. This is used by the
         SCM as a kind of heart-beat to detect a wedged service process.  The value of the check
         point is best interpreted in conjunction with the WaitHint value.
         
         If the service is shutting down it will set WaitHint to a checkpoint value that will
         indicate 100% completion.  This can be used to implement a progress indicator.
         
         The Windows process identifier. If 0, the process is not running.
         
         The dwServiceFlags. See Win32Service Service Flag Constants.

<comment>See Also:</comment>
   * Win32Service Predefined Constants


id: win32_send_custom_control
type: function
doc:
<comment>Description:</comment>
  Send a custom control to the service
  
  See Microsoft ControlService function for more details

<comment>Param:</comment>
  <info>string</info>  <strong>$servicename</strong>  The short name of the service.
  <info>int</info>     <strong>$control</strong>      The custom contole value between 128 and 255.
  <info>string</info>  <strong>$machine</strong>      Optional machine name.  If omitted, the local machine is used.

<comment>Return:</comment>
  <info>void</info>  No value is returned.
        
        Prior to version 1.0.0, returned <info>WIN32_NO_ERROR</info> on success, <info>false</info> if there is a problem with
        the parameters or a Win32 Error Code on failure.

<comment>See Also:</comment>
   * <strong>win32_start_service()</strong>
   * <strong>win32_stop_service()</strong>
   * <strong>win32_pause_service()</strong>
   * <strong>win32_continue_service()</strong>
   * Win32 Error Codes


id: win32_set_service_exit_code
type: function
doc:
<comment>Description:</comment>
  Define or return the exit code for the current running service
  
  Change or return the exit code. The exit code is used only if the exit mode is not graceful.  If
  the value is not zero, the recovery configuration can be used after  service fail. See  Microsoft
  system error codes  for more details
  
  This function work only in "cli" SAPI. On other SAPI  this function is disabled.

<comment>Param:</comment>
  <info>int</info>  <strong>$exitCode</strong>  The return code used on exit.

<comment>Return:</comment>
  <info>int</info>  Return the current or old exit code.

<comment>See Also:</comment>
   * <strong>win32_start_service_ctrl_dispatcher()</strong>
   * <strong>win32_set_service_status()</strong>
   * <strong>win32_set_service_exit_mode()</strong>


id: win32_set_service_exit_mode
type: function
doc:
<comment>Description:</comment>
  Define or return the exit mode for the current running service
  
  If <strong>$gracefulMode</strong> parameter is provided, the exit mode 
  is changed. When the exit mode is not gracefuly, the exit code used can be set 
  with the <strong>win32_set_service_exit_code()</strong> function.
  
  This function work only in "cli" SAPI. On other SAPI  this function is disabled.

<comment>Param:</comment>
  <info>bool</info>  <strong>$gracefulMode</strong>  <info>true</info> for exit graceful. <info>false</info> for exit with error.

<comment>Return:</comment>
  <info>bool</info>  Return the current or old exit mode.

<comment>See Also:</comment>
   * <strong>win32_start_service_ctrl_dispatcher()</strong>
   * <strong>win32_set_service_status()</strong>
   * <strong>win32_set_service_exit_code()</strong>


id: win32_set_service_status
type: function
doc:
<comment>Description:</comment>
  Update the service status
  
  Informs the SCM of the current status of a running service. This call is only valid for a running
  service process.
  
  Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI  this function is
  disabled.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>      The service status code, one of <info>WIN32_SERVICE_RUNNING</info>, <info>WIN32_SERVICE_STOPPED</info>,
                    <info>WIN32_SERVICE_STOP_PENDING</info>, <info>WIN32_SERVICE_START_PENDING</info>,
                    <info>WIN32_SERVICE_CONTINUE_PENDING</info>, <info>WIN32_SERVICE_PAUSE_PENDING</info>,
                    <info>WIN32_SERVICE_PAUSED</info>.
  <info>int</info>  <strong>$checkpoint</strong>  The checkpoint value the service increments periodically to report its progress
                    during a lengthy start, stop, pause, or continue operation. For example, the
                    service should increment this value as it completes each step of its
                    initialization when it is starting up.
                    
                    The <strong>$checkpoint</strong> is only valid when the <strong>$status</strong> is one of
                    <info>WIN32_SERVICE_STOP_PENDING</info>, <info>WIN32_SERVICE_START_PENDING</info>,
                    <info>WIN32_SERVICE_CONTINUE_PENDING</info> or <info>WIN32_SERVICE_PAUSE_PENDING</info>.

<comment>Return:</comment>
  <info>void</info>  No value is returned.
        
        Prior to version 1.0.0, returned <info>WIN32_NO_ERROR</info> on success, <info>false</info> if there is a problem with
        the parameters or a Win32 Error Code on failure.

<comment>See Also:</comment>
   * <strong>win32_start_service_ctrl_dispatcher()</strong>
   * <strong>win32_get_last_control_message()</strong>
   * <strong>win32_set_service_exit_mode()</strong>
   * <strong>win32_set_service_exit_code()</strong>
   * Win32Service Service Status Constants


id: win32_start_service
type: function
doc:
<comment>Description:</comment>
  Starts a service
  
  Attempts to start the named service. Requires administrative privileges or  an account with
  appropriate rights set in the service's ACL.

<comment>Param:</comment>
  <info>string</info>  <strong>$servicename</strong>  The short name of the service.
  <info>string</info>  <strong>$machine</strong>      Optional machine name.  If omitted, the local machine is used.

<comment>Return:</comment>
  <info>void</info>  No value is returned.
        
        Prior to version 1.0.0, returned <info>WIN32_NO_ERROR</info> on success, <info>false</info> if there is a problem with
        the parameters or a Win32 Error Code on failure.

<comment>See Also:</comment>
   * <strong>win32_stop_service()</strong>
   * <strong>win32_pause_service()</strong>
   * <strong>win32_continue_service()</strong>
   * <strong>win32_send_custom_control()</strong>
   * Win32 Error Codes


id: win32_start_service_ctrl_dispatcher
type: function
doc:
<comment>Description:</comment>
  Registers the script with the SCM, so that it can act as the service with the given name
  
  When launched via the Service Control Manager, a service process is required to "check-in" with it
  to establish service monitoring and communication facilities.  This function performs the check-in
  by spawning a thread to handle the lower-level communication with the service control manager.
  
  Once started, the service process should do 2 things. The first is to tell the Service Control
  Manager that the service is running. This is achieved by calling <strong>win32_set_service_status()</strong> with
  the <info>WIN32_SERVICE_RUNNING</info> constant. If you need to perform some lengthy process before the service
  is actually running, then you can use the <info>WIN32_SERVICE_START_PENDING</info> constant. The second is to
  continue to check-in with the service control manager so that it can determine if it should
  terminate. This is achieved by periodically calling <strong>win32_get_last_control_message()</strong> and handling
  the return code appropriately.
  
  Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI  this function is
  disabled.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>          The short-name of the service, as registered by <strong>win32_create_service()</strong>.
  <info>bool</info>    <strong>$gracefulMode</strong>  <info>true</info> for exit graceful. <info>false</info> for exit with error. See
                         <strong>win32_set_service_exit_mode()</strong> for more details.

<comment>Return:</comment>
  <info>void</info>  No value is returned.
        
        Prior to version 1.0.0, returned <info>WIN32_NO_ERROR</info> on success, <info>false</info> if there is a problem with
        the parameters or a Win32 Error Code on failure.

<comment>See Also:</comment>
   * <strong>win32_set_service_status()</strong>
   * <strong>win32_get_last_control_message()</strong>
   * <strong>win32_set_service_exit_mode()</strong>
   * <strong>win32_set_service_exit_code()</strong>
   * Win32 Error Codes


id: win32_stop_service
type: function
doc:
<comment>Description:</comment>
  Stops a service
  
  Stops a named service. Requires administrative privileges or an account with appropriate rights
  set in the service's ACL.

<comment>Param:</comment>
  <info>string</info>  <strong>$servicename</strong>  The short name of the service.
  <info>string</info>  <strong>$machine</strong>      Optional machine name.  If omitted, the local machine is used.

<comment>Return:</comment>
  <info>void</info>  No value is returned.
        
        Prior to version 1.0.0, returned <info>WIN32_NO_ERROR</info> on success, <info>false</info> if there is a problem with
        the parameters or a Win32 Error Code on failure.

<comment>See Also:</comment>
   * <strong>win32_start_service()</strong>
   * <strong>win32_pause_service()</strong>
   * <strong>win32_continue_service()</strong>
   * <strong>win32_send_custom_control()</strong>
   * Win32 Error Codes


id: wincache_fcache_fileinfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about files cached in the file cache
    
  
  Retrieves information about file cache content and its usage.

<comment>Param:</comment>
  <info>bool</info>  <strong>$summaryonly</strong>  Controls whether the returned array will contain information about individual
                      cache entries  along with the file cache summary.

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data about file cache  or <info>false</info> on failure
               
               The array returned by this function contains the following elements:
               <return>total_cache_uptime</return> - total time in seconds that the file cache has been active
               <return>total_file_count</return> - total number of files that are currently in the file cache
               <return>total_hit_count</return> - number of times the files have been served from the file cache
               <return>total_miss_count</return> - number of times the files have not been found in the file cache
               <return>file_entries</return> - an array that contains the information about all the cached files:
               <return>file_name</return> - absolute file name of the cached file <return>add_time</return> - time in seconds since
               the file has been added to the file cache <return>use_time</return> - time in seconds since the file
               has been accessed in the file cache <return>last_check</return> - time in seconds since the file has
               been checked for modifications <return>hit_count</return> - number of times the file has been served
               from the cache <return>file_size</return> - size of the cached file in bytes
               
               <return>total_cache_uptime</return> - total time in seconds that the file cache has been active
               
               <return>total_file_count</return> - total number of files that are currently in the file cache
               
               <return>total_hit_count</return> - number of times the files have been served from the file cache
               
               <return>total_miss_count</return> - number of times the files have not been found in the file cache
               
               <return>file_entries</return> - an array that contains the information about all the cached files:
               <return>file_name</return> - absolute file name of the cached file <return>add_time</return> - time in seconds since
               the file has been added to the file cache <return>use_time</return> - time in seconds since the file
               has been accessed in the file cache <return>last_check</return> - time in seconds since the file has
               been checked for modifications <return>hit_count</return> - number of times the file has been served
               from the cache <return>file_size</return> - size of the cached file in bytes
               
               <return>file_name</return> - absolute file name of the cached file
               
               <return>add_time</return> - time in seconds since the file has been added to the file cache
               
               <return>use_time</return> - time in seconds since the file has been accessed in the file cache
               
               <return>last_check</return> - time in seconds since the file has been checked for modifications
               
               <return>hit_count</return> - number of times the file has been served from the cache
               
               <return>file_size</return> - size of the cached file in bytes

<comment>See Also:</comment>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_ocache_fileinfo()</strong>
   * <strong>wincache_ocache_meminfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>
   * <strong>wincache_scache_meminfo()</strong>


id: wincache_fcache_meminfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about file cache memory usage
    
  
  Retrieves information about memory usage by file cache.

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data about file cache memory usage  or <info>false</info> on failure
               
               The array returned by this function contains the following elements: <return>memory_total</return> -
               amount of memory in bytes allocated for the file cache <return>memory_free</return> - amount of free
               memory in bytes available for the file cache <return>num_used_blks</return> - number of memory blocks
               used by the file cache <return>num_free_blks</return> - number of free memory blocks available for the
               file cache <return>memory_overhead</return> - amount of memory in bytes used for the file cache
               internal structures
               
               <return>memory_total</return> - amount of memory in bytes allocated for the file cache
               
               <return>memory_free</return> - amount of free memory in bytes available for the file cache
               
               <return>num_used_blks</return> - number of memory blocks used by the file cache
               
               <return>num_free_blks</return> - number of free memory blocks available for the file cache
               
               <return>memory_overhead</return> - amount of memory in bytes used for the file cache internal
               structures

<comment>See Also:</comment>
   * <strong>wincache_fcache_fileinfo()</strong>
   * <strong>wincache_ocache_fileinfo()</strong>
   * <strong>wincache_ocache_meminfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>
   * <strong>wincache_scache_meminfo()</strong>


id: wincache_lock
type: function
doc:
<comment>Description:</comment>
  Acquires an exclusive lock on a given key
    
  
  Obtains an exclusive lock on a given key. The execution of the current script will be blocked
  until the  lock can be obtained. Once the lock is obtained, the other scripts that try to request
  the lock by using the same  key will be blocked, until the current script releases the lock by
  using <strong>wincache_unlock()</strong>.
  
  Using of the <strong>wincache_lock()</strong> and <strong>wincache_unlock()</strong> can cause deadlocks when  executing PHP scripts
  in a multi-process environment like FastCGI. Do not use these functions unless you are  absolutely
  sure you need to use them. For the majority of the operations on the user cache it is not
  necessary to use these functions.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>       Name of the key in the cache to get the lock on.
  <info>bool</info>    <strong>$isglobal</strong>  Controls whether the scope of the lock is system-wide or local. Local locks are
                     scoped to the application pool  in IIS FastCGI case or to all php processes
                     that have the same parent process identifier.

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

<comment>See Also:</comment>
   * <strong>wincache_unlock()</strong>
   * <strong>wincache_ucache_set()</strong>
   * <strong>wincache_ucache_get()</strong>
   * <strong>wincache_ucache_delete()</strong>
   * <strong>wincache_ucache_clear()</strong>
   * <strong>wincache_ucache_exists()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>


id: wincache_ocache_fileinfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about files cached in the opcode cache
    
  
  Retrieves information about opcode cache content and its usage.
  
  This function was
  REMOVED in PHP 7.0.0.

<comment>Param:</comment>
  <info>bool</info>  <strong>$summaryonly</strong>  Controls whether the returned array will contain information about individual
                      cache entries  along with the opcode cache summary.

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data about opcode cache  or <info>false</info> on failure
               
               The array returned by this function contains the following elements:
               <return>total_cache_uptime</return> - total time in seconds that the opcode cache has been active
               <return>total_file_count</return> - total number of files that are currently in the opcode cache
               <return>total_hit_count</return> - number of times the compiled opcode have been served from the cache
               <return>total_miss_count</return> - number of times the compiled opcode have not been found in the
               cache <return>is_local_cache</return> - true is the cache metadata is for a local cache instance,
               false if the metadata is for the global cache <return>file_entries</return> - an array that contains
               the information about all the cached files: <return>file_name</return> - absolute file name of the
               cached file <return>add_time</return> - time in seconds since the file has been added to the opcode
               cache <return>use_time</return> - time in seconds since the file has been accessed in the opcode cache
               <return>last_check</return> - time in seconds since the file has been checked for modifications
               <return>hit_count</return> - number of times the file has been served from the cache <return>function_count</return> -
               number of functions in the cached file <return>class_count</return> - number of classes in the cached
               file
               
               <return>total_cache_uptime</return> - total time in seconds that the opcode cache has been active
               
               <return>total_file_count</return> - total number of files that are currently in the opcode cache
               
               <return>total_hit_count</return> - number of times the compiled opcode have been served from the cache
               
               <return>total_miss_count</return> - number of times the compiled opcode have not been found in the
               cache
               
               <return>is_local_cache</return> - true is the cache metadata is for a local cache instance,  false if
               the metadata is for the global cache
               
               <return>file_entries</return> - an array that contains the information about all the cached files:
               <return>file_name</return> - absolute file name of the cached file <return>add_time</return> - time in seconds since
               the file has been added to the opcode cache <return>use_time</return> - time in seconds since the file
               has been accessed in the opcode cache <return>last_check</return> - time in seconds since the file has
               been checked for modifications <return>hit_count</return> - number of times the file has been served
               from the cache <return>function_count</return> - number of functions in the cached file <return>class_count</return> -
               number of classes in the cached file
               
               <return>file_name</return> - absolute file name of the cached file
               
               <return>add_time</return> - time in seconds since the file has been added to the opcode cache
               
               <return>use_time</return> - time in seconds since the file has been accessed in the opcode cache
               
               <return>last_check</return> - time in seconds since the file has been checked for modifications
               
               <return>hit_count</return> - number of times the file has been served from the cache
               
               <return>function_count</return> - number of functions in the cached file
               
               <return>class_count</return> - number of classes in the cached file

<comment>See Also:</comment>
   * <strong>wincache_fcache_fileinfo()</strong>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_ocache_meminfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>
   * <strong>wincache_scache_meminfo()</strong>


id: wincache_ocache_meminfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about opcode cache memory usage
    
  
  Retrieves information about memory usage by opcode cache.

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data about opcode cache memory usage  or <info>false</info> on failure
               
               The array returned by this function contains the following elements: <return>memory_total</return> -
               amount of memory in bytes allocated for the opcode cache <return>memory_free</return> - amount of free
               memory in bytes available for the opcode cache <return>num_used_blks</return> - number of memory
               blocks used by the opcode cache <return>num_free_blks</return> - number of free memory blocks
               available for the opcode cache <return>memory_overhead</return> - amount of memory in bytes used for
               the opcode cache internal structures
               
               <return>memory_total</return> - amount of memory in bytes allocated for the opcode cache
               
               <return>memory_free</return> - amount of free memory in bytes available for the opcode cache
               
               <return>num_used_blks</return> - number of memory blocks used by the opcode cache
               
               <return>num_free_blks</return> - number of free memory blocks available for the opcode cache
               
               <return>memory_overhead</return> - amount of memory in bytes used for the opcode cache internal
               structures
               
               This function was
               REMOVED in PHP 7.0.0.

<comment>See Also:</comment>
   * <strong>wincache_fcache_fileinfo()</strong>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_ocache_fileinfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>
   * <strong>wincache_scache_meminfo()</strong>


id: wincache_refresh_if_changed
type: function
doc:
<comment>Description:</comment>
  Refreshes the cache entries for the cached files
    
  
  Refreshes the cache entries for the files, whose names were passed in the input argument.  If no
  argument is specified then refreshes all the entries in the cache.

<comment>Param:</comment>
  <info>array</info>  <strong>$files</strong>  An array of file names for files that need to be refreshed.  An absolute or
                 relative file paths can be used.

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

<comment>See Also:</comment>
   * <strong>wincache_fcache_fileinfo()</strong>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_ocache_fileinfo()</strong>
   * <strong>wincache_ocache_meminfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>


id: wincache_rplist_fileinfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about resolve file path cache
    
  
  Retrieves information about cached mappings between relative file paths  and corresponding
  absolute file paths.

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

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data about the resolve file path cache  or <info>false</info> on failure
               
               The array returned by this function contains the following elements: <return>total_file_count</return>
               - total number of file path  mappings stored in the cache <return>rplist_entries</return> - an array
               that contains the information about all  the cached file paths: <return>resolve_path</return> - path
               to a file <return>subkey_data</return> - corresponding absolute path to a file
               
               <return>total_file_count</return> - total number of file path  mappings stored in the cache
               
               <return>rplist_entries</return> - an array that contains the information about all  the cached file
               paths: <return>resolve_path</return> - path to a file <return>subkey_data</return> - corresponding absolute path to a
               file
               
               <return>resolve_path</return> - path to a file
               
               <return>subkey_data</return> - corresponding absolute path to a file

<comment>See Also:</comment>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_fcache_fileinfo()</strong>
   * <strong>wincache_ocache_fileinfo()</strong>
   * <strong>wincache_ocache_meminfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>
   * <strong>wincache_scache_meminfo()</strong>


id: wincache_rplist_meminfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about memory usage by the resolve file path cache
    
  
  Retrieves information about memory usage by resolve file path cache.

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data that describes memory usage by resolve file path cache.  or <info>false</info>
               on failure
               
               The array returned by this function contains the following elements: <return>memory_total</return> -
               amount of memory in bytes allocated for the resolve file path cache <return>memory_free</return> -
               amount of free memory in bytes available for the resolve file path cache
               <return>num_used_blks</return> - number of memory blocks used by the resolve file path cache
               <return>num_free_blks</return> - number of free memory blocks available for the resolve file path
               cache <return>memory_overhead</return> - amount of memory in bytes used for the internal structures of
               resolve file path cache
               
               <return>memory_total</return> - amount of memory in bytes allocated for the resolve file path cache
               
               <return>memory_free</return> - amount of free memory in bytes available for the resolve file path
               cache
               
               <return>num_used_blks</return> - number of memory blocks used by the resolve file path cache
               
               <return>num_free_blks</return> - number of free memory blocks available for the resolve file path
               cache
               
               <return>memory_overhead</return> - amount of memory in bytes used for the internal structures of
               resolve file path cache

<comment>See Also:</comment>
   * <strong>wincache_fcache_fileinfo()</strong>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_ocache_fileinfo()</strong>
   * <strong>wincache_ocache_meminfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>
   * <strong>wincache_scache_meminfo()</strong>


id: wincache_scache_info
type: function
doc:
<comment>Description:</comment>
  Retrieves information about files cached in the session cache
    
  
  Retrieves information about session cache content and its usage.

<comment>Param:</comment>
  <info>bool</info>  <strong>$summaryonly</strong>  Controls whether the returned array will contain information about individual
                      cache entries  along with the session cache summary.

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data about session cache  or <info>false</info> on failure
               
               The array returned by this function contains the following elements:
               <return>total_cache_uptime</return> - total time in seconds that the session cache has been active
               <return>total_item_count</return> - total number of elements that are currently in the session cache
               <return>is_local_cache</return> - true is the cache metadata is for a local cache instance,  false if
               the metadata is for the global cache <return>total_hit_count</return> - number of times the data has
               been served from the cache <return>total_miss_count</return> - number of times the data has not been
               found in the cache <return>scache_entries</return> - an array that contains the information about all
               the cached items: <return>key_name</return> - name of the key which is used to store the data
               <return>value_type</return> - type of value stored by the key <return>use_time</return> - time in seconds since the
               file has been accessed in the opcode cache <return>last_check</return> - time in seconds since the
               file has been checked for modifications <return>ttl_seconds</return> - time remaining for the data to
               live in the cache, 0 meaning infinite <return>age_seconds</return> - time elapsed from the time data
               has been added in the cache <return>hitcount</return> - number of times data has been served from the
               cache
               
               <return>total_cache_uptime</return> - total time in seconds that the session cache has been active
               
               <return>total_item_count</return> - total number of elements that are currently in the session cache
               
               <return>is_local_cache</return> - true is the cache metadata is for a local cache instance,  false if
               the metadata is for the global cache
               
               <return>total_hit_count</return> - number of times the data has been served from the cache
               
               <return>total_miss_count</return> - number of times the data has not been found in the cache
               
               <return>scache_entries</return> - an array that contains the information about all the cached items:
               <return>key_name</return> - name of the key which is used to store the data <return>value_type</return> - type of value
               stored by the key <return>use_time</return> - time in seconds since the file has been accessed in the
               opcode cache <return>last_check</return> - time in seconds since the file has been checked for
               modifications <return>ttl_seconds</return> - time remaining for the data to live in the cache, 0
               meaning infinite <return>age_seconds</return> - time elapsed from the time data has been added in the
               cache <return>hitcount</return> - number of times data has been served from the cache
               
               <return>key_name</return> - name of the key which is used to store the data
               
               <return>value_type</return> - type of value stored by the key
               
               <return>use_time</return> - time in seconds since the file has been accessed in the opcode cache
               
               <return>last_check</return> - time in seconds since the file has been checked for modifications
               
               <return>ttl_seconds</return> - time remaining for the data to live in the cache, 0 meaning infinite
               
               <return>age_seconds</return> - time elapsed from the time data has been added in the cache
               
               <return>hitcount</return> - number of times data has been served from the cache

<comment>See Also:</comment>
   * <strong>wincache_fcache_fileinfo()</strong>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_ocache_meminfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_meminfo()</strong>


id: wincache_scache_meminfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about session cache memory usage
    
  
  Retrieves information about memory usage by session cache.

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data about session cache memory usage  or <info>false</info> on failure
               
               The array returned by this function contains the following elements: <return>memory_total</return> -
               amount of memory in bytes allocated for the session cache <return>memory_free</return> - amount of
               free memory in bytes available for the session cache <return>num_used_blks</return> - number of memory
               blocks used by the session cache <return>num_free_blks</return> - number of free memory blocks
               available for the session cache <return>memory_overhead</return> - amount of memory in bytes used for
               the session cache internal structures
               
               <return>memory_total</return> - amount of memory in bytes allocated for the session cache
               
               <return>memory_free</return> - amount of free memory in bytes available for the session cache
               
               <return>num_used_blks</return> - number of memory blocks used by the session cache
               
               <return>num_free_blks</return> - number of free memory blocks available for the session cache
               
               <return>memory_overhead</return> - amount of memory in bytes used for the session cache internal
               structures

<comment>See Also:</comment>
   * <strong>wincache_fcache_fileinfo()</strong>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_ocache_fileinfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>


id: wincache_ucache_add
type: function
doc:
<comment>Description:</comment>
  Adds a variable in user cache only if variable does not already exist in the cache
    
  
  Adds a variable in user cache, only if this variable doesn't already exist in the cache.  The
  added variable remains in the user cache unless its time to live expires or it is  deleted by
  using <strong>wincache_ucache_delete()</strong> or <strong>wincache_ucache_clear()</strong> functions.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>     Store the variable using this <strong>$key</strong> name. If a variable with same key is already
                   present the function will fail and return <info>false</info>. <strong>$key</strong> is case sensitive. To
                   override the value even if  <strong>$key</strong> is present use <strong>wincache_ucache_set()</strong> function
                   instad.  <strong>$key</strong> can also take array of name =&gt; value pairs where names will be
                   used as keys.  This can be used to add multiple values in the cache in one
                   operation, thus avoiding race condition.
  <info>mixed</info>   <strong>$value</strong>   Value of a variable to store. <strong>$Value</strong> supports all data types except resources,
                   such as file handles. This paramter is ignored if first argument is an array. A
                   general guidance is to pass <info>null</info>  as <strong>$value</strong> while using array as <strong>$key</strong>. If <strong>$value</strong>
                   is an object, or an array containing objects, then the objects will be
                   serialized. See __sleep() for details on serializing objects.
  <info>array</info>   <strong>$values</strong>  Associative array of keys and values.
  <info>int</info>     <strong>$ttl</strong>     Time for the variable to live in the cache in seconds. After the value specified
                   in <strong>$ttl</strong> has passed  the stored variable will be deleted from the cache. This
                   parameter takes a default value of <return>0</return> which means  the variable will stay in the
                   cache unless explicitly deleted by using <strong>wincache_ucache_delete()</strong>  or
                   <strong>wincache_ucache_clear()</strong> functions.

<comment>Return:</comment>
  <info>bool</info>  If <strong>$key</strong> is string, the function returns <info>true</info> on success and <info>false</info> on failure.
        
        If <strong>$key</strong> is an array, the function returns:  If all the name =&gt; value pairs in the array
        can be set, function returns an empty array;  If all the name =&gt; value pairs in the array
        cannot be set, function returns <info>false</info>;  If some can be set while others cannot, function
        returns an array with name=&gt;value pair for which the addition failed in the user cache.
        
        If all the name =&gt; value pairs in the array can be set, function returns an empty array;
        
        If all the name =&gt; value pairs in the array cannot be set, function returns <info>false</info>;
        
        If some can be set while others cannot, function returns an array with name=&gt;value pair
        for which the addition failed in the user cache.

<comment>See Also:</comment>
   * <strong>wincache_ucache_set()</strong>
   * <strong>wincache_ucache_get()</strong>
   * <strong>wincache_ucache_delete()</strong>
   * <strong>wincache_ucache_clear()</strong>
   * <strong>wincache_ucache_exists()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * __sleep()


id: wincache_ucache_cas
type: function
doc:
<comment>Description:</comment>
  Compares the variable with old value and assigns new value to it
    
  
  Compares the variable associated with the <strong>$key</strong> with <strong>$old_value</strong>  and if it matches then assigns the
  <strong>$new_value</strong> to it.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>        The <strong>$key</strong> that is used to store the variable in the cache.  <strong>$key</strong> is case
                      sensitive.
  <info>int</info>     <strong>$old_value</strong>  Old value of the variable pointed by <strong>$key</strong> in the user cache.  The value should
                      be of type <return>long</return>, otherwise the function returns  <info>false</info>.
  <info>int</info>     <strong>$new_value</strong>  New value which will get assigned to variable pointer by <strong>$key</strong> if a  match is
                      found. The value should be of type <return>long</return>, otherwise  the function returns
                      <info>false</info>.

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

<comment>See Also:</comment>
   * <strong>wincache_ucache_inc()</strong>
   * <strong>wincache_ucache_dec()</strong>


id: wincache_ucache_clear
type: function
doc:
<comment>Description:</comment>
  Deletes entire content of the user cache
    
  
  Clears/deletes all the values stored in the user cache.

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

<comment>See Also:</comment>
   * <strong>wincache_ucache_set()</strong>
   * <strong>wincache_ucache_add()</strong>
   * <strong>wincache_ucache_delete()</strong>
   * <strong>wincache_ucache_get()</strong>
   * <strong>wincache_ucache_exists()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>


id: wincache_ucache_dec
type: function
doc:
<comment>Description:</comment>
  Decrements the value associated with the key
    
  
  Decrements the value associated with the <strong>$key</strong> by 1 or as specified  by <strong>$dec_by</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>      The <strong>$key</strong> that was used to store the variable in the cache.  <strong>$key</strong> is case
                    sensitive.
  <info>int</info>     <strong>$dec_by</strong>   The value by which the variable associated with the <strong>$key</strong> will get decremented.
                    If the argument is a floating point number it will be truncated to nearest
                    integer. The variable  associated with the <strong>$key</strong> should be of type <return>long</return>,
                    otherwise  the function fails and returns <info>false</info>.
  <info>bool</info>    <strong>$success</strong>  Will be set to <info>true</info> on success and <info>false</info> on failure.

<comment>Return:</comment>
  <info>mixed</info>  Returns the decremented value on success and <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>wincache_ucache_inc()</strong>
   * <strong>wincache_ucache_cas()</strong>


id: wincache_ucache_delete
type: function
doc:
<comment>Description:</comment>
  Deletes variables from the user cache
    
  
  Deletes the elements in the user cache pointed by <strong>$key</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>  The <strong>$key</strong> that was used to store the variable in the cache.  <strong>$key</strong> is case sensitive.
               <strong>$key</strong> can be an  array of keys.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        If <strong>$key</strong> is an array then the function returns <info>false</info>  if every element of the array fails to
        get deleted from the user cache, otherwise returns an  array which consists of all the keys
        that are deleted.

<comment>See Also:</comment>
   * <strong>wincache_ucache_set()</strong>
   * <strong>wincache_ucache_add()</strong>
   * <strong>wincache_ucache_get()</strong>
   * <strong>wincache_ucache_clear()</strong>
   * <strong>wincache_ucache_exists()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>


id: wincache_ucache_exists
type: function
doc:
<comment>Description:</comment>
  Checks if a variable exists in the user cache
    
  
  Checks if a variable with the <strong>$key</strong> exists in the user cache or not.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  The <strong>$key</strong> that was used to store the variable in the cache.  <strong>$key</strong> is case sensitive.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if variable with the <strong>$key</strong> exitsts,  otherwise returns <info>false</info>.

<comment>See Also:</comment>
   * <strong>wincache_ucache_set()</strong>
   * <strong>wincache_ucache_add()</strong>
   * <strong>wincache_ucache_get()</strong>
   * <strong>wincache_ucache_clear()</strong>
   * <strong>wincache_ucache_delete()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>


id: wincache_ucache_get
type: function
doc:
<comment>Description:</comment>
  Gets a variable stored in the user cache
    
  
  Gets a variable stored in the user cache.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>      The <strong>$key</strong> that was used to store the variable in the cache.  <strong>$key</strong> is case
                   sensitive. <strong>$key</strong> can be an  array of keys. In this case the return value will be
                   an array of values of each element  in the <strong>$key</strong> array. If an object, or an array
                   containing objects, is returned, then the objects will be unserialized. See
                   __wakeup() for details on unserializing objects.
  <info>bool</info>   <strong>$success</strong>  Will be set to <info>true</info> on success and <info>false</info> on failure.

<comment>Return:</comment>
  <info>mixed</info>  If <strong>$key</strong> is a string, the function returns the value of the variable stored with that key.
         The <strong>$success</strong> is set to <info>true</info> on success and  to <info>false</info> on failure.
         
         The <strong>$key</strong> is an array, the parameter <strong>$success</strong>  is always set to <info>true</info>. The returned array
         (name =&gt; value pairs) will  contain only those name =&gt; value pairs for which the get
         operation in user cache was  successful. If none of the keys in the key array finds a match
         in the user cache  an empty array will be returned.

<comment>See Also:</comment>
   * <strong>wincache_ucache_add()</strong>
   * <strong>wincache_ucache_set()</strong>
   * <strong>wincache_ucache_delete()</strong>
   * <strong>wincache_ucache_clear()</strong>
   * <strong>wincache_ucache_exists()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * __wakeup()


id: wincache_ucache_inc
type: function
doc:
<comment>Description:</comment>
  Increments the value associated with the key
    
  
  Increments the value associated with the <strong>$key</strong> by 1 or as specified  by <strong>$inc_by</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>      The <strong>$key</strong> that was used to store the variable in the cache.  <strong>$key</strong> is case
                    sensitive.
  <info>int</info>     <strong>$inc_by</strong>   The value by which the variable associated with the <strong>$key</strong> will get incremented.
                    If the argument is a floating point number it will be truncated to nearest
                    integer. The variable  associated with the <strong>$key</strong> should be of type <return>long</return>,
                    otherwise  the function fails and returns <info>false</info>.
  <info>bool</info>    <strong>$success</strong>  Will be set to <info>true</info> on success and <info>false</info> on failure.

<comment>Return:</comment>
  <info>mixed</info>  Returns the incremented value on success and <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>wincache_ucache_dec()</strong>
   * <strong>wincache_ucache_cas()</strong>


id: wincache_ucache_info
type: function
doc:
<comment>Description:</comment>
  Retrieves information about data stored in the user cache
    
  
  Retrieves information about data stored in the user cache.

<comment>Param:</comment>
  <info>bool</info>    <strong>$summaryonly</strong>  Controls whether the returned array will contain information about
                        individual cache entries  along with the user cache summary.
  <info>string</info>  <strong>$key</strong>          The key of an entry in the user cache. If specified then the returned array
                        will contain information  only about that cache entry. If not specified and
                        <strong>$summaryonly</strong> is set to  <info>false</info> then the returned array will contain
                        information about all entries in the cache.

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data about user cache  or <info>false</info> on failure
               
               The array returned by this function contains the following elements:
               <return>total_cache_uptime</return> - total time in seconds that the user cache has been active
               <return>total_item_count</return> - total number of elements that are currently in the user cache
               <return>is_local_cache</return> - true is the cache metadata is for a local cache instance,  false if
               the metadata is for the global cache <return>total_hit_count</return> - number of times the data has
               been served from the cache <return>total_miss_count</return> - number of times the data has not been
               found in the cache <return>ucache_entries</return> - an array that contains the information about all
               the cached items: <return>key_name</return> - name of the key which is used to store the data
               <return>value_type</return> - type of value stored by the key <return>use_time</return> - time in seconds since the
               file has been accessed in the opcode cache <return>last_check</return> - time in seconds since the
               file has been checked for modifications <return>is_session</return> - indicates if the data is a
               session variable <return>ttl_seconds</return> - time remaining for the data to live in the cache, 0
               meaning infinite <return>age_seconds</return> - time elapsed from the time data has been added in the
               cache <return>hitcount</return> - number of times data has been served from the cache
               
               <return>total_cache_uptime</return> - total time in seconds that the user cache has been active
               
               <return>total_item_count</return> - total number of elements that are currently in the user cache
               
               <return>is_local_cache</return> - true is the cache metadata is for a local cache instance,  false if
               the metadata is for the global cache
               
               <return>total_hit_count</return> - number of times the data has been served from the cache
               
               <return>total_miss_count</return> - number of times the data has not been found in the cache
               
               <return>ucache_entries</return> - an array that contains the information about all the cached items:
               <return>key_name</return> - name of the key which is used to store the data <return>value_type</return> - type of value
               stored by the key <return>use_time</return> - time in seconds since the file has been accessed in the
               opcode cache <return>last_check</return> - time in seconds since the file has been checked for
               modifications <return>is_session</return> - indicates if the data is a session variable <return>ttl_seconds</return> -
               time remaining for the data to live in the cache, 0 meaning infinite <return>age_seconds</return> -
               time elapsed from the time data has been added in the cache <return>hitcount</return> - number of
               times data has been served from the cache
               
               <return>key_name</return> - name of the key which is used to store the data
               
               <return>value_type</return> - type of value stored by the key
               
               <return>use_time</return> - time in seconds since the file has been accessed in the opcode cache
               
               <return>last_check</return> - time in seconds since the file has been checked for modifications
               
               <return>is_session</return> - indicates if the data is a session variable
               
               <return>ttl_seconds</return> - time remaining for the data to live in the cache, 0 meaning infinite
               
               <return>age_seconds</return> - time elapsed from the time data has been added in the cache
               
               <return>hitcount</return> - number of times data has been served from the cache

<comment>See Also:</comment>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_ocache_fileinfo()</strong>
   * <strong>wincache_ocache_meminfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_scache_info()</strong>
   * <strong>wincache_scache_meminfo()</strong>


id: wincache_ucache_meminfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about user cache memory usage
    
  
  Retrieves information about memory usage by user cache.

<comment>Return:</comment>
  <info>array|false</info>  Array of meta data about user cache memory usage  or <info>false</info> on failure
               
               The array returned by this function contains the following elements: <return>memory_total</return> -
               amount of memory in bytes allocated for the user cache <return>memory_free</return> - amount of free
               memory in bytes available for the user cache <return>num_used_blks</return> - number of memory blocks
               used by the user cache <return>num_free_blks</return> - number of free memory blocks available for the
               user cache <return>memory_overhead</return> - amount of memory in bytes used for the user cache
               internal structures
               
               <return>memory_total</return> - amount of memory in bytes allocated for the user cache
               
               <return>memory_free</return> - amount of free memory in bytes available for the user cache
               
               <return>num_used_blks</return> - number of memory blocks used by the user cache
               
               <return>num_free_blks</return> - number of free memory blocks available for the user cache
               
               <return>memory_overhead</return> - amount of memory in bytes used for the user cache internal
               structures

<comment>See Also:</comment>
   * <strong>wincache_fcache_fileinfo()</strong>
   * <strong>wincache_fcache_meminfo()</strong>
   * <strong>wincache_ocache_fileinfo()</strong>
   * <strong>wincache_rplist_fileinfo()</strong>
   * <strong>wincache_rplist_meminfo()</strong>
   * <strong>wincache_refresh_if_changed()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>
   * <strong>wincache_scache_meminfo()</strong>


id: wincache_ucache_set
type: function
doc:
<comment>Description:</comment>
  Adds a variable in user cache and overwrites a variable if it already exists in the cache
    
  
  Adds a variable in user cache. Overwrites a variable if it already exists in the cache.  The added
  or updated variable remains in the user cache unless its time to live expires or it is  deleted by
  using <strong>wincache_ucache_delete()</strong> or <strong>wincache_ucache_clear()</strong> functions.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$key</strong>     Store the variable using this <strong>$key</strong> name. If a variable with same  <strong>$key</strong> is already
                  present the function will overwrite the previous  value with the new one. <strong>$key</strong> is
                  case sensitive.  <strong>$key</strong> can also take array of name =&gt; value pairs where names
                  will be used as  keys. This can be used to add multiple values in the cache in one
                  operation, thus avoiding  race condition.
  <info>mixed</info>  <strong>$value</strong>   Value of a variable to store. <strong>$Value</strong> supports all data types except resources,
                  such as file handles. This paramter is ignored if first argument is an array. A
                  general guidance is to pass <info>null</info>  as <strong>$value</strong> while using array as <strong>$key</strong>. If <strong>$value</strong>
                  is an object, or an array containing objects, then the objects will be serialized.
                  See __sleep() for details on serializing objects.
  <info>array</info>  <strong>$values</strong>  Associative array of keys and values.
  <info>int</info>    <strong>$ttl</strong>     Time for the variable to live in the cache in seconds. After the value specified
                  in <strong>$ttl</strong> has passed  the stored variable will be deleted from the cache. This
                  parameter takes a default value of <return>0</return> which means  the variable will stay in the
                  cache unless explicitly deleted by using <strong>wincache_ucache_delete()</strong>  or
                  <strong>wincache_ucache_clear()</strong> functions.

<comment>Return:</comment>
  <info>bool</info>  If <strong>$key</strong> is string, the function returns <info>true</info> on success and <info>false</info> on failure.
        
        If <strong>$key</strong> is an array, the function returns:  If all the name =&gt; value pairs in the array
        can be set, function returns an empty array;  If all the name =&gt; value pairs in the array
        cannot be set, function returns <info>false</info>;  If some can be set while others cannot, function
        returns an array with name=&gt;value pair for which the addition failed in the user cache.
        
        If all the name =&gt; value pairs in the array can be set, function returns an empty array;
        
        If all the name =&gt; value pairs in the array cannot be set, function returns <info>false</info>;
        
        If some can be set while others cannot, function returns an array with name=&gt;value pair
        for which the addition failed in the user cache.

<comment>See Also:</comment>
   * <strong>wincache_ucache_add()</strong>
   * <strong>wincache_ucache_get()</strong>
   * <strong>wincache_ucache_delete()</strong>
   * <strong>wincache_ucache_clear()</strong>
   * <strong>wincache_ucache_exists()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * __sleep()


id: wincache_unlock
type: function
doc:
<comment>Description:</comment>
  Releases an exclusive lock on a given key
    
  
  Releases an exclusive lock that was obtained on a given key by using <strong>wincache_lock()</strong>.  If any
  other process was blocked waiting for the lock on this key, that process will be able to obtain
  the lock.
  
  Using of the <strong>wincache_lock()</strong> and <strong>wincache_unlock()</strong> can cause deadlocks when  executing PHP scripts
  in a multi-process environment like FastCGI. Do not use these functions unless you are  absolutely
  sure you need to use them. For the majority of the operations on the user cache it is not
  necessary to use these functions.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  Name of the key in the cache to release the lock on.

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

<comment>See Also:</comment>
   * <strong>wincache_lock()</strong>
   * <strong>wincache_ucache_set()</strong>
   * <strong>wincache_ucache_get()</strong>
   * <strong>wincache_ucache_delete()</strong>
   * <strong>wincache_ucache_clear()</strong>
   * <strong>wincache_ucache_exists()</strong>
   * <strong>wincache_ucache_meminfo()</strong>
   * <strong>wincache_ucache_info()</strong>
   * <strong>wincache_scache_info()</strong>


id: wkhtmltox\Image\Converter::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new Image converter
  
  Creates an Image converter, optionally taking an input buffer and configuration settings

<comment>Param:</comment>
  <info>string</info>  <strong>$buffer</strong>    HTML
  <info>array</info>   <strong>$settings</strong>  NameDescriptionValuesChangeloginURL or path of the input file, if "-" stdin is
                     used/path/to/markup.html&gt;= 0.1.0outpath of output file, if "-" stdout is
                     used, by default an internal buffer is used/path/to/output.png&gt;=
                     0.1.0fmtoutput format to use""defaultjpgoutput as JPEGpngoutput as PNGbmpoutput
                     as bitmapsvgoutput as SVG&gt;= 0.1.0transparentwhen outputting a PNG or SVG,
                     make the white background transparentboolean&gt;= 0.1.0screenWidththe with of
                     the screen used to render in pixels800&gt;= 0.1.0smartWidthwhen true,
                     screenWidth is expanded to the content widthboolean&gt;=
                     0.1.0qualitycompression factor to use when outputting a JPEG image94&gt;=
                     0.1.0crop.leftleft/x coordinate of the window to capture in pixels200&gt;=
                     0.1.0crop.toptop/y coordinate of the window to capture in pixels200&gt;=
                     0.1.0crop.widthwidth of the window to capture in pixels200&gt;=
                     0.1.0crop.heightheight of the window to capture in pixels200&gt;=
                     0.1.0load.cookieJarpath of file used to load and store
                     cookies/tmp/cookies.txt&gt;= 0.1.0load.usernameuser name to use when loging
                     into a websitebart&gt;= 0.1.0load.passwordthe password to used when logging
                     into a websiteelbarto&gt;= 0.1.0load.jsdelaythe amount of time in milliseconds
                     to wait after a page is loaded until it is captured1200&gt;=
                     0.1.0load.zoomFactorhow much zoom should be applied to the content2.2&gt;=
                     0.1.0load.customHeaderscustom headers to send when requesting the main web
                     page&gt;= 0.1.0load.repertCustomHeadersset true to send with all
                     requestsboolean&gt;= 0.1.0load.cookiescookie string to send when requesting the
                     main web page&gt;= 0.1.0load.postpost string to send when requesting the main
                     web page&gt;= 0.1.0load.blockLocalFileAccessdisallow local and piped files to
                     access other local filesboolean&gt;= 0.1.0load.stopSlowScriptstop slow running
                     javascriptbooleanload.debugJavascriptallow javascript to raise
                     warningsboolean&gt;= 0.1.0load.loadErrorHandlingset error handling
                     strategyabortabort the convertion processskipdo not add the object to the final
                     outputignoretry to add the object to the final output&gt;= 0.1.0load.proxy&gt;=
                     0.1.0web.backgroundinclude background image in outputboolean&gt;=
                     0.1.0web.loadImagesinclude images in outputboolean&gt;=
                     0.1.0web.enableJavascriptenable or disable javascriptboolean&gt;=
                     0.1.0web.enableIntelligentShrinkingenable to attempt to fit more content on
                     page, only applies to PDF outputboolean&gt;= 0.1.0web.minimumFontSizethe
                     minimum font size allowed9&gt;= 0.1.0web.printMediaTypeprint content using
                     print media type instead of screen media typeboolean&gt;=
                     0.1.0web.defaultEncodingcontent to use where no encoding is specifiedutf-8&gt;=
                     0.1.0web.userStyleSheetURL or path to a user specified style
                     sheet/path/to/style.css&gt;= 0.1.0web.enablePluginsenable or disable NS
                     pluginsboolean&gt;= 0.1.0


id: wkhtmltox\Image\Converter::convert
type: function
doc:
<comment>Description:</comment>
  Perform Image conversion
  
  Performs conversion of the input buffer

<comment>Return:</comment>
  <info>string|null</info>  Where the return value is used, it will be populated with the contents of the
               conversion buffer


id: wkhtmltox\Image\Converter::getVersion
type: function
doc:
<comment>Description:</comment>
  Determine version of Converter
  
  Determines the version of Converter as reported by libwkhtmltox

<comment>Return:</comment>
  <info>string</info>  Returns a version string
          
          This is not yet implemented by libwkhtmltox


id: wkhtmltox\PDF\Converter::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new PDF converter
  
  Creates a PDF converter, using optional configuration settings

<comment>Param:</comment>
  <info>array</info>  <strong>$settings</strong>  NameDescriptionValuesChangelogsize.pageSizepaper size of output documentA4&gt;=
                    0.1.0size.widthwith of the output document210mm&gt;= 0.1.0size.heightheight of
                    the output document297mm&gt;= 0.1.0orientationorientation of the output
                    documentLandscapePortrait&gt;= 0.1.0colorModecolor mode of the output
                    documentColorGreyscale&gt;= 0.1.0resolutionresoluition of the output
                    documentmost likely has no effect&gt;= 0.1.0dpidpi to use while printing80&gt;=
                    0.1.0pageOffsetinteger added to page numbers generating headers, footers, and
                    toc&gt;= 0.1.0copies&gt;= 0.1.0collatecollate copiesboolean&gt;=
                    0.1.0outlinegenerate PDF outlineboolean&gt;= 0.1.0outlineDepthmaximum depth of
                    outline&gt;= 0.1.0dumpOutlinepath of file to dump outline XML&gt;= 0.1.0outpath
                    of output file, if "-" stdout is used&gt;= 0.1.0documentTitletitle for the
                    output document&gt;= 0.1.0useCompressionenable or disable lossless
                    compressionboolean&gt;= 0.1.0margin.topsize of the top margin2cm&gt;=
                    0.1.0margin.bottomsize of the bottom margin2cm&gt;= 0.1.0margin.leftsize of the
                    left margin2cm&gt;= 0.1.0margin.rightsize of the right margin2cm&gt;=
                    0.1.0imageDPImaximum DPI for images in the output document&gt;=
                    0.1.0imageQualitythe jpeg compression factor for images in the output
                    document94&gt;= 0.1.0load.cookieJarpath of file used to load and store
                    cookies/tmp/cookies.txt&gt;= 0.1.0


id: wkhtmltox\PDF\Converter::add
type: function
doc:
<comment>Description:</comment>
  Add an object for conversion
  
  Adds the given object to conversion

<comment>Param:</comment>
  <info>wkhtmltox\PDF\Object</info>  <strong>$object</strong>  The object to add

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


id: wkhtmltox\PDF\Converter::convert
type: function
doc:
<comment>Description:</comment>
  Perform PDF conversion
  
  Performs conversion of all previously added Objects

<comment>Return:</comment>
  <info>string|null</info>  Where the return value is used, it will be populated with the contents of the
               conversion buffer


id: wkhtmltox\PDF\Converter::getVersion
type: function
doc:
<comment>Description:</comment>
  Determine version of Converter
  
  Determines the version of Converter as reported by libwkhtmltox

<comment>Return:</comment>
  <info>string</info>  Returns a version string


id: wkhtmltox\PDF\Object::__construct
type: function
doc:
<comment>Description:</comment>
  Create a new PDF Object
  
  Creates a new PDF Object from the given buffer and optional configuration settings

<comment>Param:</comment>
  <info>string</info>  <strong>$buffer</strong>    HTML
  <info>array</info>   <strong>$settings</strong>  NameDescriptionValuesChangelogpageURL or path of the HTML to convert&gt;=
                     0.1.0useExternalLinksset true to convert external links in the input into
                     external PDF links in the outputboolean&gt;= 0.1.0useLocalLinksset true to
                     convert internal links in the input into internal PDF links in the
                     outputboolean&gt;= 0.1.0produceFormsset true to turn HTML forms into PDF
                     formsboolean&gt;= 0.1.0replacementsundocumented&gt;= 0.1.0includeInOutlineset
                     true to include sections from this object in the outline and tocboolean&gt;=
                     0.1.0pagesCountset true to make page count in toc inclusive of the number of
                     pages in this objectboolean&gt;= 0.1.0tocXslset to style sheet to convert this
                     object into a toc object&gt;= 0.1.0toc.useDottedLinesset true to use dotted
                     lines in tocboolean&gt;= 0.1.0toc.captionTextthe caption text for toc&gt;=
                     0.1.0toc.forwardLinksset true to create links from toc to contentboolean&gt;=
                     0.1.0toc.backLinksset true to create links from content to tocboolean&gt;=
                     0.1.0toc.indentationindentation for toc2em&gt;= 0.1.0toc.fontScalethe factor to
                     scale down the font at every toc level0.8&gt;= 0.1.0header.fontSizefont size
                     for use in header13&gt;= 0.1.0header.fontNamename of font for use in
                     headertimes&gt;= 0.1.0header.lefttext for left of header&gt;=
                     0.1.0header.centertext for center of header&gt;= 0.1.0header.righttext for
                     right of header&gt;= 0.1.0header.lineenable or disable horizontal rule under
                     headerboolean&gt;= 0.1.0header.spacingspace between header and content1.8&gt;=
                     0.1.0header.htmlUrlURL or path of HTML to use in header&gt;=
                     0.1.0footer.fontSizefont size for use in footer13&gt;= 0.1.0footer.fontNamename
                     of font for use in footertimes&gt;= 0.1.0footer.lefttext for left of
                     footer&gt;= 0.1.0footer.centertext for center of footer&gt;=
                     0.1.0footer.righttext for right of footer&gt;= 0.1.0footer.lineenable or
                     disable horizontal rule under footerboolean&gt;= 0.1.0footer.spacingspace
                     between footer and content1.8&gt;= 0.1.0footer.htmlUrlURL or path of HTML to
                     use in footer&gt;= 0.1.0load.usernameuser name to use when loging into a
                     websitebart&gt;= 0.1.0load.passwordthe password to used when logging into a
                     websiteelbarto&gt;= 0.1.0load.jsdelaythe amount of time in milliseconds to wait
                     after a page is loaded until it is captured1200&gt;= 0.1.0load.zoomFactorhow
                     much zoom should be applied to the content2.2&gt;=
                     0.1.0load.customHeaderscustom headers to send when requesting the main web
                     page&gt;= 0.1.0load.repertCustomHeadersset true to send with all
                     requestsboolean&gt;= 0.1.0load.cookiescookie string to send when requesting the
                     main web page&gt;= 0.1.0load.postpost string to send when requesting the main
                     web page&gt;= 0.1.0load.blockLocalFileAccessdisallow local and piped files to
                     access other local filesboolean&gt;= 0.1.0load.stopSlowScriptstop slow running
                     javascriptbooleanload.debugJavascriptallow javascript to raise
                     warningsboolean&gt;= 0.1.0load.loadErrorHandlingset error handling
                     strategyabortabort the convertion processskipdo not add the object to the final
                     outputignoretry to add the object to the final output&gt;= 0.1.0load.proxy&gt;=
                     0.1.0web.backgroundinclude background image in outputboolean&gt;=
                     0.1.0web.loadImagesinclude images in outputboolean&gt;=
                     0.1.0web.enableJavascriptenable or disable javascriptboolean&gt;=
                     0.1.0web.enableIntelligentShrinkingenable to attempt to fit more content on
                     page, only applies to PDF outputboolean&gt;= 0.1.0web.minimumFontSizethe
                     minimum font size allowed9&gt;= 0.1.0web.printMediaTypeprint content using
                     print media type instead of screen media typeboolean&gt;=
                     0.1.0web.defaultEncodingcontent to use where no encoding is specifiedutf-8&gt;=
                     0.1.0web.userStyleSheetURL or path to a user specified style
                     sheet/path/to/style.css&gt;= 0.1.0web.enablePluginsenable or disable NS
                     pluginsboolean&gt;= 0.1.0


id: wordwrap
type: function
doc:
<comment>Description:</comment>
  Wraps a string to a given number of characters
  
  Wraps a string to a given number of characters using a string break character.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>          The input string.
  <info>int</info>     <strong>$width</strong>           The number of characters at which the string will be wrapped.
  <info>string</info>  <strong>$break</strong>           The line is broken using the optional <strong>$break</strong> parameter.
  <info>bool</info>    <strong>$cut_long_words</strong>  If the <strong>$cut_long_words</strong> is set to <info>true</info>, the string is always wrapped at or
                           before the specified <strong>$width</strong>.  So if you have a word that is larger than
                           the given width, it is broken apart. (See second example). When <info>false</info> the
                           function does not split the word even if the <strong>$width</strong> is smaller than the
                           word width.

<comment>Return:</comment>
  <info>string</info>  Returns the given string wrapped at the specified length.

<comment>See Also:</comment>
   * <strong>nl2br()</strong>
   * <strong>chunk_split()</strong>


id: xattr_get
type: function
doc:
<comment>Description:</comment>
  Get an extended attribute
    
  
  This function gets the value of an extended attribute of a file.
  
  Extended attributes have two different namespaces: user
  and root. The user namespace is available to all users, while the root namespace
  is available only to users with root privileges. xattr operates on the user
  namespace  by default, but this can be changed with the
  <strong>$flags</strong> parameter.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The file from which we get the attribute.
  <info>string</info>  <strong>$name</strong>      The name of the attribute.
  <info>int</info>     <strong>$flags</strong>     Supported xattr flags<info>XATTR_DONTFOLLOW</info>Do not follow the symbolic link but
                     operate on symbolic link itself.<info>XATTR_ROOT</info>Set attribute in root (trusted)
                     namespace. Requires root privileges.

<comment>Return:</comment>
  <info>string</info>  Returns a string containing the value or <info>false</info> if the attribute doesn't  exist.

<comment>See Also:</comment>
   * <strong>xattr_list()</strong>
   * <strong>xattr_set()</strong>
   * <strong>xattr_remove()</strong>


id: xattr_list
type: function
doc:
<comment>Description:</comment>
  Get a list of extended attributes
    
  
  This functions gets a list of names of extended attributes of a file.
  
  Extended attributes have two different namespaces: user
  and root. The user namespace is available to all users, while the root namespace
  is available only to users with root privileges. xattr operates on the user
  namespace  by default, but this can be changed with the
  <strong>$flags</strong> parameter.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path of the file.
  <info>int</info>     <strong>$flags</strong>     Supported xattr flags<info>XATTR_DONTFOLLOW</info>Do not follow the symbolic link but
                     operate on symbolic link itself.<info>XATTR_ROOT</info>Set attribute in root (trusted)
                     namespace. Requires root privileges.

<comment>Return:</comment>
  <info>array</info>  This function returns an array with names of extended attributes.

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


id: xattr_remove
type: function
doc:
<comment>Description:</comment>
  Remove an extended attribute
    
  
  This function removes an extended attribute of a file.
  
  Extended attributes have two different namespaces: user
  and root. The user namespace is available to all users, while the root namespace
  is available only to users with root privileges. xattr operates on the user
  namespace  by default, but this can be changed with the
  <strong>$flags</strong> parameter.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The file from which we remove the attribute.
  <info>string</info>  <strong>$name</strong>      The name of the attribute to remove.
  <info>int</info>     <strong>$flags</strong>     Supported xattr flags<info>XATTR_DONTFOLLOW</info>Do not follow the symbolic link but
                     operate on symbolic link itself.<info>XATTR_ROOT</info>Set attribute in root (trusted)
                     namespace. Requires root privileges.

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

<comment>See Also:</comment>
   * <strong>xattr_list()</strong>
   * <strong>xattr_set()</strong>
   * <strong>xattr_get()</strong>


id: xattr_set
type: function
doc:
<comment>Description:</comment>
  Set an extended attribute
    
  
  This function sets the value of an extended attribute of a file.
  
  Extended attributes have two different namespaces: user
  and root. The user namespace is available to all users, while the root namespace
  is available only to users with root privileges. xattr operates on the user
  namespace  by default, but this can be changed with the
  <strong>$flags</strong> parameter.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The file in which we set the attribute.
  <info>string</info>  <strong>$name</strong>      The name of the extended attribute. This attribute will be created if  it
                     doesn't exist or replaced otherwise. You can change this behaviour  by using
                     the <strong>$flags</strong> parameter.
  <info>string</info>  <strong>$value</strong>     The value of the attribute.
  <info>int</info>     <strong>$flags</strong>     Supported xattr flags<info>XATTR_CREATE</info>Function will fail if extended attribute
                     already exists.<info>XATTR_REPLACE</info>Function will fail if extended attribute doesn't
                     exist.<info>XATTR_DONTFOLLOW</info>Do not follow the symbolic link but operate on symbolic
                     link itself.<info>XATTR_ROOT</info>Set attribute in root (trusted) namespace. Requires root
                     privileges.

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

<comment>See Also:</comment>
   * <strong>xattr_get()</strong>
   * <strong>xattr_remove()</strong>


id: xattr_supported
type: function
doc:
<comment>Description:</comment>
  Check if filesystem supports extended attributes
    
  
  This functions checks if the filesystem holding the given file supports  extended attributes. Read
  access to the file is required.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path of the tested file.
  <info>int</info>     <strong>$flags</strong>     Supported xattr flags<info>XATTR_DONTFOLLOW</info>Do not follow the symbolic link but
                     operate on symbolic link itself.

<comment>Return:</comment>
  <info>bool</info>  This function returns <info>true</info> if filesystem supports extended attributes, <info>false</info> if it doesn't
        and <info>null</info> if it can't be determined (for example wrong path or lack of permissions to file).

<comment>See Also:</comment>
   * <strong>xattr_get()</strong>
   * <strong>xattr_list()</strong>


id: xdiff_file_bdiff
type: function
doc:
<comment>Description:</comment>
  Make binary diff of two files
  
  Makes a binary diff of two files and stores the result in a patch file. This function works with
  both text and binary files. Resulting patch file can be later applied using
  <strong>xdiff_file_bpatch()</strong>/<strong>xdiff_string_bpatch()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$old_file</strong>  Path to the first file. This file acts as "old" file.
  <info>string</info>  <strong>$new_file</strong>  Path to the second file. This file acts as "new" file.
  <info>string</info>  <strong>$dest</strong>      Path of the resulting patch file. Resulting file contains differences between
                     "old" and "new" files. It is in binary format and is human-unreadable.

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

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


id: xdiff_file_bdiff_size
type: function
doc:
<comment>Description:</comment>
  Read a size of file created by applying a binary diff
  
  Returns a size of a result file that would be created after applying binary patch from file <strong>$file</strong>
  to the original file.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>  The path to the binary patch created by <strong>xdiff_string_bdiff()</strong> or
                 <strong>xdiff_string_rabdiff()</strong> function.

<comment>Return:</comment>
  <info>int</info>  Returns the size of file that would be created.

<comment>See Also:</comment>
   * <strong>xdiff_file_bdiff()</strong>
   * <strong>xdiff_file_rabdiff()</strong>
   * <strong>xdiff_file_bpatch()</strong>


id: xdiff_file_bpatch
type: function
doc:
<comment>Description:</comment>
  Patch a file with a binary diff
  
  Patches a <strong>$file</strong> with a binary <strong>$patch</strong> and stores the result in a file <strong>$dest</strong>.  This function accepts
  patches created both via <strong>xdiff_file_bdiff()</strong>  and <strong>xdiff_file_rabdiff()</strong> functions or their string
  counterparts.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>   The original file.
  <info>string</info>  <strong>$patch</strong>  The binary patch file.
  <info>string</info>  <strong>$dest</strong>   Path of the resulting file.

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

<comment>See Also:</comment>
   * <strong>xdiff_file_bdiff()</strong>
   * <strong>xdiff_file_rabdiff()</strong>


id: xdiff_file_diff
type: function
doc:
<comment>Description:</comment>
  Make unified diff of two files
  
  Makes an unified diff containing differences between <strong>$old_file</strong> and <strong>$new_file</strong> and stores it in
  <strong>$dest</strong> file. The resulting file is human-readable. An optional <strong>$context</strong> parameter specifies how
  many lines of context should be added around each change. Setting <strong>$minimal</strong> parameter to true will
  result in outputting the shortest patch file possible (can take a long time).

<comment>Param:</comment>
  <info>string</info>  <strong>$old_file</strong>  Path to the first file. This file acts as "old" file.
  <info>string</info>  <strong>$new_file</strong>  Path to the second file. This file acts as "new" file.
  <info>string</info>  <strong>$dest</strong>      Path of the resulting patch file.
  <info>int</info>     <strong>$context</strong>   Indicates how many lines of context you want to include in diff result.
  <info>bool</info>    <strong>$minimal</strong>   Set this parameter to <info>true</info> if you want to minimalize size of the result (can
                     take a long time).

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

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


id: xdiff_file_diff_binary
type: function
doc:
<comment>Description:</comment>
  Alias of xdiff_file_bdiff
  
  Makes a binary diff of two files and stores the result in a patch file. This function works with
  both text and binary files. Resulting patch file can be later applied using <strong>xdiff_file_bpatch()</strong>.
  
  Starting with version 1.5.0 this function is an alias of <strong>xdiff_file_bdiff()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$old_file</strong>  Path to the first file. This file acts as "old" file.
  <info>string</info>  <strong>$new_file</strong>  Path to the second file. This file acts as "new" file.
  <info>string</info>  <strong>$dest</strong>      Path of the resulting patch file. Resulting file contains differences between
                     "old" and "new" files. It is in binary format and is human-unreadable.

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

<comment>See Also:</comment>
   * <strong>xdiff_file_bdiff()</strong>
   * <strong>xdiff_file_bpatch()</strong>


id: xdiff_file_merge3
type: function
doc:
<comment>Description:</comment>
  Merge 3 files into one
  
  Merges three files into one and stores the result in a file <strong>$dest</strong>.  The <strong>$old_file</strong> is an original
  version while <strong>$new_file1</strong> and <strong>$new_file2</strong> are modified versions of an original.

<comment>Param:</comment>
  <info>string</info>  <strong>$old_file</strong>   Path to the first file. It acts as "old" file.
  <info>string</info>  <strong>$new_file1</strong>  Path to the second file. It acts as modified version of <strong>$old_file</strong>.
  <info>string</info>  <strong>$new_file2</strong>  Path to the third file. It acts as modified version of <strong>$old_file</strong>.
  <info>string</info>  <strong>$dest</strong>       Path of the resulting file, containing merged changed from both <strong>$new_file1</strong> and
                      <strong>$new_file2</strong>.

<comment>Return:</comment>
  <info>mixed</info>  Returns <info>true</info> if merge was successful, string with rejected chunks if it was not or <info>false</info> if
         an internal error happened.

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


id: xdiff_file_patch
type: function
doc:
<comment>Description:</comment>
  Patch a file with an unified diff
  
  Patches a <strong>$file</strong> with a <strong>$patch</strong> and stores the result in a file. <strong>$patch</strong> has to be an unified diff
  created by  <strong>xdiff_file_diff()</strong>/<strong>xdiff_string_diff()</strong> function.  An optional <strong>$flags</strong> parameter
  specifies mode of operation.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>   The original file.
  <info>string</info>  <strong>$patch</strong>  The unified patch file. It has to be created using <strong>xdiff_string_diff()</strong>,
                  <strong>xdiff_file_diff()</strong> functions or compatible tools.
  <info>string</info>  <strong>$dest</strong>   Path of the resulting file.
  <info>int</info>     <strong>$flags</strong>  Can be either <info>XDIFF_PATCH_NORMAL</info> (default mode, normal patch) or
                  <info>XDIFF_PATCH_REVERSE</info> (reversed patch).
                  
                  Starting from version 1.5.0, you can also use binary OR to enable
                  <info>XDIFF_PATCH_IGNORESPACE</info> flag.

<comment>Return:</comment>
  <info>mixed</info>  Returns <info>false</info> if an internal error happened, string with rejected chunks if patch couldn't
         be applied or <info>true</info> if patch has been successfully applied.

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


id: xdiff_file_patch_binary
type: function
doc:
<comment>Description:</comment>
  Alias of xdiff_file_bpatch
  
  Patches a <strong>$file</strong> with a binary <strong>$patch</strong> and stores the result in a file <strong>$dest</strong>.  This function accepts
  patches created both via <strong>xdiff_file_bdiff()</strong>  or <strong>xdiff_file_rabdiff()</strong> functions or their string
  counterparts.
  
  Starting with version 1.5.0 this function is an alias of <strong>xdiff_file_bpatch()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>   The original file.
  <info>string</info>  <strong>$patch</strong>  The binary patch file.
  <info>string</info>  <strong>$dest</strong>   Path of the resulting file.

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

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


id: xdiff_file_rabdiff
type: function
doc:
<comment>Description:</comment>
  Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
  
  Makes a binary diff of two files and stores the result in a patch file. The difference between
  this function and <strong>xdiff_file_bdiff()</strong> is different algorithm used which should result in faster
  execution and smaller diff produced. This function works with both text and binary files.
  Resulting patch file can be later applied using <strong>xdiff_file_bpatch()</strong>/<strong>xdiff_string_bpatch()</strong>.
  
  For more details about differences between algorithm used please check libxdiff  website.

<comment>Param:</comment>
  <info>string</info>  <strong>$old_file</strong>  Path to the first file. This file acts as "old" file.
  <info>string</info>  <strong>$new_file</strong>  Path to the second file. This file acts as "new" file.
  <info>string</info>  <strong>$dest</strong>      Path of the resulting patch file. Resulting file contains differences between
                     "old" and "new" files. It is in binary format and is human-unreadable.

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

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


id: xdiff_string_bdiff
type: function
doc:
<comment>Description:</comment>
  Make binary diff of two strings
  
  Makes a binary diff of two strings and returns the result. This function works with both text and
  binary data. Resulting patch can be later applied using <strong>xdiff_string_bpatch()</strong>/<strong>xdiff_file_bpatch()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$old_data</strong>  First string with binary data. It acts as "old" data.
  <info>string</info>  <strong>$new_data</strong>  Second string with binary data. It acts as "new" data.

<comment>Return:</comment>
  <info>string</info>  Returns string with binary diff containing differences between "old" and "new" data or
          <info>false</info> if an internal error occurred.

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


id: xdiff_string_bdiff_size
type: function
doc:
<comment>Description:</comment>
  Read a size of file created by applying a binary diff
  
  Returns a size of a result file that would be created after applying binary <strong>$patch</strong> to the original
  file.

<comment>Param:</comment>
  <info>string</info>  <strong>$patch</strong>  The binary patch created by <strong>xdiff_string_bdiff()</strong> or  <strong>xdiff_string_rabdiff()</strong>
                  function.

<comment>Return:</comment>
  <info>int</info>  Returns the size of file that would be created.

<comment>See Also:</comment>
   * <strong>xdiff_string_bdiff()</strong>
   * <strong>xdiff_string_rabdiff()</strong>
   * <strong>xdiff_string_bpatch()</strong>


id: xdiff_string_bpatch
type: function
doc:
<comment>Description:</comment>
  Patch a string with a binary diff
  
  Patches a string <strong>$str</strong> with a binary <strong>$patch</strong>. This function accepts patches created both via
  <strong>xdiff_string_bdiff()</strong>  and <strong>xdiff_string_rabdiff()</strong> functions or their file counterparts.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>    The original binary string.
  <info>string</info>  <strong>$patch</strong>  The binary patch string.

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

<comment>See Also:</comment>
   * <strong>xdiff_string_bdiff()</strong>
   * <strong>xdiff_string_rabdiff()</strong>


id: xdiff_string_diff
type: function
doc:
<comment>Description:</comment>
  Make unified diff of two strings
  
  Makes an unified diff containing differences between <strong>$old_data</strong> string and <strong>$new_data</strong> string and
  returns it. The resulting diff is human-readable.  An optional <strong>$context</strong> parameter specifies how
  many lines of context should be added around each change. Setting <strong>$minimal</strong> parameter  to true will
  result in outputting the shortest patch file possible (can take a long time).

<comment>Param:</comment>
  <info>string</info>  <strong>$old_data</strong>  First string with data. It acts as "old" data.
  <info>string</info>  <strong>$new_data</strong>  Second string with data. It acts as "new" data.
  <info>int</info>     <strong>$context</strong>   Indicates how many lines of context you want to include in the diff result.
  <info>bool</info>    <strong>$minimal</strong>   Set this parameter to <info>true</info> if you want to minimalize the size of the result
                     (can take a long time).

<comment>Return:</comment>
  <info>string</info>  Returns string with resulting diff or <info>false</info> if an internal error happened.

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


id: xdiff_string_diff_binary
type: function
doc:
<comment>Description:</comment>
  Alias of xdiff_string_bdiff
  
  Makes a binary diff of two strings and returns the result. This function works with both text and
  binary data. Resulting patch can be later applied using <strong>xdiff_string_bpatch()</strong>/<strong>xdiff_file_bpatch()</strong>.
  
  Starting with version 1.5.0 this function is an alias of <strong>xdiff_string_bdiff()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$old_data</strong>  First string with binary data. It acts as "old" data.
  <info>string</info>  <strong>$new_data</strong>  Second string with binary data. It acts as "new" data.

<comment>Return:</comment>
  <info>string</info>  Returns string with result or <info>false</info> if an internal error happened.

<comment>See Also:</comment>
   * <strong>xdiff_string_bdiff()</strong>
   * <strong>xdiff_string_bpatch()</strong>


id: xdiff_string_merge3
type: function
doc:
<comment>Description:</comment>
  Merge 3 strings into one
  
  Merges three strings into one and returns the result. The <strong>$old_data</strong> is an original version of data
  while <strong>$new_data1</strong> and <strong>$new_data2</strong> are modified  versions of an original. An optional <strong>$error</strong> is used
  to pass any rejected parts during merging process.

<comment>Param:</comment>
  <info>string</info>  <strong>$old_data</strong>   First string with data. It acts as "old" data.
  <info>string</info>  <strong>$new_data1</strong>  Second string with data. It acts as modified version of <strong>$old_data</strong>.
  <info>string</info>  <strong>$new_data2</strong>  Third string with data. It acts as modified version of <strong>$old_data</strong>.
  <info>string</info>  <strong>$error</strong>      If provided then rejected parts are stored inside this variable.

<comment>Return:</comment>
  <info>mixed</info>  Returns the merged string, <info>false</info> if an internal error happened, or <info>true</info> if merged string is
         empty.

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


id: xdiff_string_patch
type: function
doc:
<comment>Description:</comment>
  Patch a string with an unified diff
  
  Patches a <strong>$str</strong> string with an unified patch in <strong>$patch</strong> parameter  and returns the result. <strong>$patch</strong>
  has to be an unified diff created by  <strong>xdiff_file_diff()</strong>/<strong>xdiff_string_diff()</strong> function.  An optional
  <strong>$flags</strong> parameter specifies mode of operation. Any rejected parts of the patch will be stored
  inside <strong>$error</strong> variable if  it is provided.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>    The original string.
  <info>string</info>  <strong>$patch</strong>  The unified patch string. It has to be created using <strong>xdiff_string_diff()</strong>,
                  <strong>xdiff_file_diff()</strong> functions or compatible tools.
  <info>int</info>     <strong>$flags</strong>  <strong>$flags</strong> can be either <info>XDIFF_PATCH_NORMAL</info> (default mode, normal patch) or
                  <info>XDIFF_PATCH_REVERSE</info> (reversed patch).
                  
                  Starting from version 1.5.0, you can also use binary OR to enable
                  <info>XDIFF_PATCH_IGNORESPACE</info> flag.
  <info>string</info>  <strong>$error</strong>  If provided then rejected parts are stored inside this variable.

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

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


id: xdiff_string_patch_binary
type: function
doc:
<comment>Description:</comment>
  Alias of xdiff_string_bpatch
  
  Patches a string <strong>$str</strong> with a binary <strong>$patch</strong>. This function accepts patches created both via
  <strong>xdiff_string_bdiff()</strong>  and <strong>xdiff_string_rabdiff()</strong> functions or their file counterparts.
  
  Starting with version 1.5.0 this function is an alias of <strong>xdiff_string_bpatch()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>    The original binary string.
  <info>string</info>  <strong>$patch</strong>  The binary patch string.

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

<comment>See Also:</comment>
   * <strong>xdiff_string_bpatch()</strong>
   * <strong>xdiff_string_bdiff()</strong>
   * <strong>xdiff_string_rabdiff()</strong>


id: xdiff_string_rabdiff
type: function
doc:
<comment>Description:</comment>
  Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
  
  Makes a binary diff of two strings and returns the result. The difference between this function
  and <strong>xdiff_string_bdiff()</strong> is different algorithm used which should result in faster execution and
  smaller diff produced. This function works with both text and binary data. Resulting patch can be
  later applied using <strong>xdiff_string_bpatch()</strong>/<strong>xdiff_file_bpatch()</strong>.
  
  For more details about differences between algorithm used please check libxdiff  website.

<comment>Param:</comment>
  <info>string</info>  <strong>$old_data</strong>  First string with binary data. It acts as "old" data.
  <info>string</info>  <strong>$new_data</strong>  Second string with binary data. It acts as "new" data.

<comment>Return:</comment>
  <info>string</info>  Returns string with binary diff containing differences between "old" and "new" data or
          <info>false</info> if an internal error occurred.

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


id: xhprof_disable
type: function
doc:
<comment>Description:</comment>
  Stops xhprof profiler
  
  Stops the profiler, and returns xhprof data from the run.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of xhprof data, from the run.


id: xhprof_enable
type: function
doc:
<comment>Description:</comment>
  Start xhprof profiler
  
  Start xhprof profiling.

<comment>Param:</comment>
  <info>int</info>    <strong>$flags</strong>    Optional flags to add additional information to the profiling. See the XHprof
                   constants for further information about these flags, e.g., <info>XHPROF_FLAGS_MEMORY</info> to
                   enable memory profiling.
  <info>array</info>  <strong>$options</strong>  An <info>array</info> of optional options, namely, the 'ignored_functions' option to pass in
                   functions to be ignored during profiling.

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

<comment>See Also:</comment>
   * <strong>xhprof_disable()</strong>
   * <strong>xhprof_sample_enable()</strong>
   * <strong>memory_get_usage()</strong>
   * <strong>getrusage()</strong>


id: xhprof_sample_disable
type: function
doc:
<comment>Description:</comment>
  Stops xhprof sample profiler
  
  Stops the sample mode xhprof profiler, and

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of xhprof sample data, from the run.


id: xhprof_sample_enable
type: function
doc:
<comment>Description:</comment>
  Start XHProf profiling in sampling mode
  
  Starts profiling in sample mode, which is a lighter weight version of <strong>xhprof_enable()</strong>. The
  sampling interval is 0.1 seconds, and samples record the full function call stack. The main use
  case is when lower overhead is required when doing performance monitoring and diagnostics.

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

<comment>See Also:</comment>
   * <strong>xhprof_sample_disable()</strong>
   * <strong>xhprof_enable()</strong>
   * <strong>memory_get_usage()</strong>
   * <strong>getrusage()</strong>


id: xml_error_string
type: function
doc:
<comment>Description:</comment>
  Get XML parser error string
  
  Gets the XML parser error string associated with the given  <strong>$error_code</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$error_code</strong>  An error code from <strong>xml_get_error_code()</strong>.

<comment>Return:</comment>
  <info>string|null</info>  Returns a string with a textual description of the error <strong>$error_code</strong>, or <info>null</info> if no
               description was found.

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


id: xml_get_current_byte_index
type: function
doc:
<comment>Description:</comment>
  Get current byte index for an XML parser
  
  Gets the current byte index of the given XML parser.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>  A reference to the XML parser to get byte index from.

<comment>Return:</comment>
  <info>int</info>  Returns which byte index the parser is currently at in its data buffer (starting at 0).

<comment>See Also:</comment>
   * <strong>xml_get_current_column_number()</strong>
   * <strong>xml_get_current_line_number()</strong>


id: xml_get_current_column_number
type: function
doc:
<comment>Description:</comment>
  Get current column number for an XML parser
    
  
  Gets the current column number of the given XML parser.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>  A reference to the XML parser to get column number from.

<comment>Return:</comment>
  <info>int</info>  Returns which column on the current line (as given by <strong>xml_get_current_line_number()</strong>) the
       parser is currently at.

<comment>See Also:</comment>
   * <strong>xml_get_current_byte_index()</strong>
   * <strong>xml_get_current_line_number()</strong>


id: xml_get_current_line_number
type: function
doc:
<comment>Description:</comment>
  Get current line number for an XML parser
  
  Gets the current line number for the given XML parser.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>  A reference to the XML parser to get line number from.

<comment>Return:</comment>
  <info>int</info>  Returns which line the parser is currently at in its data buffer.

<comment>See Also:</comment>
   * <strong>xml_get_current_column_number()</strong>
   * <strong>xml_get_current_byte_index()</strong>


id: xml_get_error_code
type: function
doc:
<comment>Description:</comment>
  Get XML parser error code
  
  Gets the XML parser error code.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>  A reference to the XML parser to get error code from.

<comment>Return:</comment>
  <info>int</info>  Returns one of the error codes listed in the error codes section.

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


id: xml_parse
type: function
doc:
<comment>Description:</comment>
  Start parsing an XML document
  
  <strong>xml_parse()</strong> parses an XML document. The handlers for the configured events are called as many
  times as necessary.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>    A reference to the XML parser to use.
  <info>string</info>     <strong>$data</strong>      Chunk of data to parse.  A document may be parsed piece-wise by calling
                        <strong>xml_parse()</strong> several times with new data, as long as the <strong>$is_final</strong> parameter
                        is set and <info>true</info> when the last data is parsed.
  <info>bool</info>       <strong>$is_final</strong>  If set and <info>true</info>, <strong>$data</strong> is the last piece of data sent in this parse.

<comment>Return:</comment>
  <info>int</info>  Returns 1 on success or 0 on failure.
       
       For unsuccessful parses, error information can be retrieved with <strong>xml_get_error_code()</strong>,
       <strong>xml_error_string()</strong>, <strong>xml_get_current_line_number()</strong>, <strong>xml_get_current_column_number()</strong> and
       <strong>xml_get_current_byte_index()</strong>.
       
       Some errors (such as entity errors) are reported at the end of the data, thus only if
       <strong>$is_final</strong> is set and <info>true</info>.


id: xml_parse_into_struct
type: function
doc:
<comment>Description:</comment>
  Parse XML data into an array structure
  
  This function parses an XML string into 2 parallel array structures, one (<strong>$index</strong>) containing
  pointers to the location of the appropriate values in the <strong>$values</strong> array. These last two parameters
  must be passed by reference.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>  A reference to the XML parser.
  <info>string</info>     <strong>$data</strong>    A string containing the XML data.
  <info>array</info>      <strong>$values</strong>  An array containing the values of the XML data
  <info>array</info>      <strong>$index</strong>   An array containing pointers to the location of the appropriate values in the
                      $values.

<comment>Return:</comment>
  <info>int</info>  <strong>xml_parse_into_struct()</strong> returns 0 for failure and 1 for success. This is not the same as
       <info>false</info> and <info>true</info>, be careful with operators such as ===.


id: xml_parser_create
type: function
doc:
<comment>Description:</comment>
  Create an XML parser
  
  <strong>xml_parser_create()</strong> creates a new XML parser and returns a <class>XMLParser</class> instance to be used by the
  other XML functions.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$encoding</strong>  The input encoding is automatically detected, so that the <strong>$encoding</strong>
                          parameter specifies only the output encoding. If empty string is passed,
                          the parser attempts to identify which encoding the document is encoded in
                          by looking at the heading 3 or 4 bytes. The default output charset is
                          UTF-8. The supported encodings are <return>ISO-8859-1</return>, <return>UTF-8</return> and <return>US-ASCII</return>.

<comment>Return:</comment>
  <info>XMLParser</info>  Returns a new <class>XMLParser</class> instance.

<comment>See Also:</comment>
   * <strong>xml_parser_create_ns()</strong>
   * <strong>xml_parser_free()</strong>


id: xml_parser_create_ns
type: function
doc:
<comment>Description:</comment>
  Create an XML parser with namespace support
  
  <strong>xml_parser_create_ns()</strong> creates a new XML parser with XML namespace support and returns a <class>XMLParser</class>
  instance to be used by the other XML functions.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$encoding</strong>   The input encoding is automatically detected, so that the <strong>$encoding</strong>
                           parameter specifies only the output encoding. The default output charset
                           is UTF-8. The supported encodings are <return>ISO-8859-1</return>, <return>UTF-8</return> and <return>US-ASCII</return>.
  <info>string</info>       <strong>$separator</strong>  With a namespace aware parser tag parameters passed to the various
                           handler functions will consist of namespace and tag name separated by the
                           string specified in <strong>$separator</strong>.

<comment>Return:</comment>
  <info>XMLParser</info>  Returns a new <class>XMLParser</class> instance.

<comment>See Also:</comment>
   * <strong>xml_parser_create()</strong>
   * <strong>xml_parser_free()</strong>


id: xml_parser_free
type: function
doc:
<comment>Description:</comment>
  Free an XML parser
  
  This function has no effect. Prior to PHP 8.0.0, this function was used to close the resource.
  
  Frees the given XML <strong>$parser</strong>.
  
  In addition to calling <strong>xml_parser_free()</strong> when the parsing is finished, prior to PHP 8.0.0, it was
  necessary to also explicitly unset the reference to <strong>$parser</strong> to avoid memory leaks, if the parser
  resource is referenced from an object, and this object references that parser resource.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>  A reference to the XML parser to free.

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


id: xml_parser_get_option
type: function
doc:
<comment>Description:</comment>
  Get options from an XML parser
  
  Gets an option value from an XML parser.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>  A reference to the XML parser to get an option from.
  <info>int</info>        <strong>$option</strong>  Which option to fetch. <info>XML_OPTION_CASE_FOLDING</info>, <info>XML_OPTION_SKIP_TAGSTART</info>,
                      <info>XML_OPTION_SKIP_WHITE</info> and <info>XML_OPTION_TARGET_ENCODING</info> are available. See
                      <strong>xml_parser_set_option()</strong> for their description.

<comment>Return:</comment>
  <info>string|int|bool</info>  Returns the option's value.


id: xml_parser_set_option
type: function
doc:
<comment>Description:</comment>
  Set options in an XML parser
  
  Sets an option in an XML parser.

<comment>Param:</comment>
  <info>XMLParser</info>        <strong>$parser</strong>  A reference to the XML parser to set an option in.
  <info>int</info>              <strong>$option</strong>  Which option to set.  See below.
                            
                            The following options are available: XML parser optionsOption
                            constantData typeDescription<info>XML_OPTION_CASE_FOLDING</info>bool Controls whether
                            case-folding is enabled for this XML parser.  Enabled by default.
                            <info>XML_OPTION_SKIP_TAGSTART</info>integer Specify how many characters should be
                            skipped in the beginning of a tag name. <info>XML_OPTION_SKIP_WHITE</info>bool
                            Whether to skip values consisting of whitespace characters.
                            <info>XML_OPTION_TARGET_ENCODING</info>string Sets which target encoding to use in
                            this XML parser.By default, it is set to the same as the source encoding
                            used by <strong>xml_parser_create()</strong>. Supported target encodings are <return>ISO-8859-1</return>,
                            <return>US-ASCII</return> and <return>UTF-8</return>.
  <info>string|int|bool</info>  <strong>$value</strong>   The option's new value.

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


id: xml_set_character_data_handler
type: function
doc:
<comment>Description:</comment>
  Set up character data handler
  
  Sets the character data handler function for the XML parser <strong>$parser</strong>.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>   The XML parser.
  <info>callable</info>   <strong>$handler</strong>  If <info>null</info> or an empty string is passed, the handler is reset to its default
                       state.
                       
                       If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                       
                       If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an object set with
                       <strong>xml_set_object()</strong>.
                       
                       The signature of the handler must be: <info>void</info>handler<info>XMLParser</info><strong>$parser</strong><info>string</info><strong>$data</strong>
                       <strong>$parser</strong> The XML parser calling the handler. <strong>$data</strong> Character data as a string.
                       
                       The XML parser calling the handler.
                       
                       Character data as a string.
                       
                       Character data handler is called for every piece of a text in the XML
                       document. It can be called multiple times inside each fragment (e.g. for
                       non-ASCII strings).
  <info>XMLParser</info>  <strong>$parser</strong>   The XML parser calling the handler.
  <info>string</info>     <strong>$data</strong>     Character data as a string.

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


id: xml_set_default_handler
type: function
doc:
<comment>Description:</comment>
  Set up default handler
  
  Sets the default handler function for the XML parser <strong>$parser</strong>.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>   The XML parser.
  <info>callable</info>   <strong>$handler</strong>  If <info>null</info> or an empty string is passed, the handler is reset to its default
                       state.
                       
                       If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                       
                       If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an object set with
                       <strong>xml_set_object()</strong>.
                       
                       The signature of the handler must be: <info>void</info>handler<info>XMLParser</info><strong>$parser</strong><info>string</info><strong>$data</strong>
                       <strong>$parser</strong> The XML parser calling the handler. <strong>$data</strong><strong>$data</strong> contains the character
                       data. This may be the XML declaration, document type declaration, entities or
                       other data for which no other handler exists.
                       
                       The XML parser calling the handler.
                       
                       <strong>$data</strong> contains the character data. This may be the XML declaration, document
                       type declaration, entities or other data for which no other handler exists.
  <info>XMLParser</info>  <strong>$parser</strong>   The XML parser calling the handler.
  <info>string</info>     <strong>$data</strong>     <strong>$data</strong> contains the character data. This may be the XML declaration, document
                       type declaration, entities or other data for which no other handler exists.

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


id: xml_set_element_handler
type: function
doc:
<comment>Description:</comment>
  Set up start and end element handlers
  
  Sets the element handler functions for the XML <strong>$parser</strong>.
  
  <strong>$start_handler</strong> is called when a new XML element is opened. <strong>$end_handler</strong> is called when an XML
  element is closed.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>         The XML parser.
  <info>callable</info>   <strong>$start_handler</strong>  If <info>null</info> or an empty string is passed, the handler is reset to its
                             default state.
                             
                             If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                             
                             If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an object
                             set with <strong>xml_set_object()</strong>.
                             
                             The signature of the handler must be:
                             <info>void</info>start_element_handler<info>XMLParser</info><strong>$parser</strong><info>string</info><strong>$name</strong><info>array</info><strong>$attributes</strong>
                             <strong>$parser</strong> The XML parser calling the handler. <strong>$name</strong> Contains the name of
                             the element for which this handler is called. If case-folding is in
                             effect for this parser, the element name will be in uppercase letters.
                             <strong>$attributes</strong> An associative array with the element's attributes. The
                             array is empty if the element has no attributes. The keys of this array
                             are the attribute names, the values are the attribute values. Attribute
                             names are case-folded on the same criteria as element names. Attribute
                             values are not case-folded.  The order in which <strong>$attributes</strong> is
                             traversed is identical to the order in which the attributes were
                             declared.
                             
                             The XML parser calling the handler.
                             
                             Contains the name of the element for which this handler is called. If
                             case-folding is in effect for this parser, the element name will be in
                             uppercase letters.
                             
                             An associative array with the element's attributes. The array is empty
                             if the element has no attributes. The keys of this array are the
                             attribute names, the values are the attribute values. Attribute names
                             are case-folded on the same criteria as element names. Attribute values
                             are not case-folded.
                             
                             The order in which <strong>$attributes</strong> is traversed is identical to the order
                             in which the attributes were declared.
  <info>XMLParser</info>  <strong>$parser</strong>         The XML parser calling the handler.
  <info>string</info>     <strong>$name</strong>           Contains the name of the element for which this handler is called. If
                             case-folding is in effect for this parser, the element name will be in
                             uppercase letters.
  <info>array</info>      <strong>$attributes</strong>     An associative array with the element's attributes. The array is empty
                             if the element has no attributes. The keys of this array are the
                             attribute names, the values are the attribute values. Attribute names
                             are case-folded on the same criteria as element names. Attribute values
                             are not case-folded.
                             
                             The order in which <strong>$attributes</strong> is traversed is identical to the order
                             in which the attributes were declared.
  <info>callable</info>   <strong>$end_handler</strong>    If <info>null</info> or an empty string is passed, the handler is reset to its
                             default state.
                             
                             If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                             
                             If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an object
                             set with <strong>xml_set_object()</strong>.
                             
                             The signature of the handler must be:
                             <info>void</info>end_element_handler<info>XMLParser</info><strong>$parser</strong><info>string</info><strong>$name</strong> <strong>$parser</strong> The XML
                             parser calling the handler. <strong>$name</strong> Contains the name of the element for
                             which this handler is called. If case-folding is in effect for this
                             parser, the element name will be in uppercase letters.
                             
                             The XML parser calling the handler.
                             
                             Contains the name of the element for which this handler is called. If
                             case-folding is in effect for this parser, the element name will be in
                             uppercase letters.
  <info>XMLParser</info>  <strong>$parser</strong>         The XML parser calling the handler.
  <info>string</info>     <strong>$name</strong>           Contains the name of the element for which this handler is called. If
                             case-folding is in effect for this parser, the element name will be in
                             uppercase letters.

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


id: xml_set_end_namespace_decl_handler
type: function
doc:
<comment>Description:</comment>
  Set up end namespace declaration handler
  
  Set a handler to be called when leaving the scope of a namespace declaration. This will be called,
  for each namespace declaration, after the handler for the end tag of the element in which the
  namespace was declared.
  
  This event is not supported under libXML, so a registered handler wouldn't be called.

<comment>Param:</comment>
  <info>XMLParser</info>     <strong>$parser</strong>   The XML parser.
  <info>callable</info>      <strong>$handler</strong>  If <info>null</info> or an empty string is passed, the handler is reset to its default
                          state.
                          
                          If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                          
                          If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an object set
                          with <strong>xml_set_object()</strong>.
                          
                          The signature of the handler must be:
                          handler<info>XMLParser</info><strong>$parser</strong><info>string</info><info>false</info></info><strong>$prefix</strong> <strong>$parser</strong> The XML parser calling
                          the handler. <strong>$prefix</strong> The prefix is a string used to reference the
                          namespace within an XML object. <info>false</info> if no prefix exists.
                          
                          The XML parser calling the handler.
                          
                          The prefix is a string used to reference the namespace within an XML
                          object. <info>false</info> if no prefix exists.
  <info>XMLParser</info>     <strong>$parser</strong>   The XML parser calling the handler.
  <info>string|false</info>  <strong>$prefix</strong>   The prefix is a string used to reference the namespace within an XML
                          object. <info>false</info> if no prefix exists.

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

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


id: xml_set_external_entity_ref_handler
type: function
doc:
<comment>Description:</comment>
  Set up external entity reference handler
  
  Sets the external entity reference handler function for the XML parser <strong>$parser</strong>.

<comment>Param:</comment>
  <info>XMLParser</info>     <strong>$parser</strong>             The XML parser.
  <info>callable</info>      <strong>$handler</strong>            If <info>null</info> or an empty string is passed, the handler is reset to
                                    its default state.
                                    
                                    If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                                    
                                    If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an
                                    object set with <strong>xml_set_object()</strong>.
                                    
                                    The signature of the handler must be:
                                    <info>bool</info>handler<info>XMLParser</info><strong>$parser</strong><info>string</info><strong>$open_entity_names</strong><info>string</info><info>false</info></info><strong>$base</strong><info>string</info><strong>$system_id</strong><info>string</info><info>false</info></info><strong>$public_id</strong>
                                    <strong>$parser</strong> The XML parser calling the handler. <strong>$open_entity_names</strong> A
                                    space-separated list of the names of the entities that are open
                                    for the parse of this entity (including the name of the
                                    referenced entity). <strong>$base</strong> This is the base for resolving the
                                    system identifier (<strong>$system_id</strong>) of the external entity.
                                    <strong>$system_id</strong> The system identifier as specified in the entity
                                    declaration. <strong>$public_id</strong> The public identifier as specified in
                                    the entity declaration, or an empty string if none was
                                    specified; the whitespace in the public identifier will have
                                    been normalized as required by the XML spec.
                                    
                                    The XML parser calling the handler.
                                    
                                    A space-separated list of the names of the entities that are
                                    open for the parse of this entity (including the name of the
                                    referenced entity).
                                    
                                    This is the base for resolving the system identifier
                                    (<strong>$system_id</strong>) of the external entity.
                                    
                                    The system identifier as specified in the entity declaration.
                                    
                                    The public identifier as specified in the entity declaration, or
                                    an empty string if none was specified; the whitespace in the
                                    public identifier will have been normalized as required by the
                                    XML spec.
                                    
                                    The handler should return <info>true</info> if the entity was handled, <info>false</info>
                                    otherwise. When returning <info>false</info> the XML parser will stop parsing
                                    and <strong>xml_get_error_code()</strong> will return
                                    <info>XML_ERROR_EXTERNAL_ENTITY_HANDLING</info>.
  <info>XMLParser</info>     <strong>$parser</strong>             The XML parser calling the handler.
  <info>string</info>        <strong>$open_entity_names</strong>  A space-separated list of the names of the entities that are
                                    open for the parse of this entity (including the name of the
                                    referenced entity).
  <info>string|false</info>  <strong>$base</strong>               This is the base for resolving the system identifier
                                    (<strong>$system_id</strong>) of the external entity.
  <info>string</info>        <strong>$system_id</strong>          The system identifier as specified in the entity declaration.
  <info>string|false</info>  <strong>$public_id</strong>          The public identifier as specified in the entity declaration, or
                                    an empty string if none was specified; the whitespace in the
                                    public identifier will have been normalized as required by the
                                    XML spec.

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


id: xml_set_notation_decl_handler
type: function
doc:
<comment>Description:</comment>
  Set up notation declaration handler
  
  Sets the notation declaration handler function for the XML parser <strong>$parser</strong>.
  
  A notation declaration is part of the document's DTD and has the following format:     $name</strong>
  { <strong>$systemId</strong> | <strong>$publicId</strong>?>
  ]]> See section 4.7 of the XML 1.0 spec for the definition of notation declarations.

<comment>Param:</comment>
  <info>XMLParser</info>     <strong>$parser</strong>         The XML parser.
  <info>callable</info>      <strong>$handler</strong>        If <info>null</info> or an empty string is passed, the handler is reset to its
                                default state.
                                
                                If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                                
                                If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an object
                                set with <strong>xml_set_object()</strong>.
                                
                                The signature of the handler must be:
                                <info>void</info>handler<info>XMLParser</info><strong>$parser</strong><info>string</info><strong>$notation_name</strong><info>string</info><info>false</info></info><strong>$base</strong><info>string</info><strong>$system_id</strong><info>string</info><info>false</info></info><strong>$public_id</strong>
                                <strong>$parser</strong> The XML parser calling the handler. <strong>$notation_name</strong> This is
                                the notation's name, as per the notation format described above.
                                <strong>$base</strong> This is the base for resolving the system identifier
                                (<return>system_id</return>) of the notation declaration. <strong>$system_id</strong> System
                                identifier of the external notation declaration. <strong>$public_id</strong> Public
                                identifier of the external notation declaration.
                                
                                The XML parser calling the handler.
                                
                                This is the notation's name, as per the notation format described
                                above.
                                
                                This is the base for resolving the system identifier (<return>system_id</return>) of
                                the notation declaration.
                                
                                System identifier of the external notation declaration.
                                
                                Public identifier of the external notation declaration.
  <info>XMLParser</info>     <strong>$parser</strong>         The XML parser calling the handler.
  <info>string</info>        <strong>$notation_name</strong>  This is the notation's name, as per the notation format described
                                above.
  <info>string|false</info>  <strong>$base</strong>           This is the base for resolving the system identifier (<return>system_id</return>) of
                                the notation declaration.
  <info>string</info>        <strong>$system_id</strong>      System identifier of the external notation declaration.
  <info>string|false</info>  <strong>$public_id</strong>      Public identifier of the external notation declaration.

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


id: xml_set_object
type: function
doc:
<comment>Description:</comment>
  Use XML Parser within an object
  
  This function allows to use <strong>$parser</strong> inside <strong>$object</strong>. All callback functions could be set with
  <strong>xml_set_element_handler()</strong> etc and assumed to be methods of <strong>$object</strong>.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>  A reference to the XML parser to use inside the object.
  <info>object</info>     <strong>$object</strong>  The object where to use the XML parser.

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


id: xml_set_processing_instruction_handler
type: function
doc:
<comment>Description:</comment>
  Set up processing instruction (PI) handler
    
  
  Sets the processing instruction (PI) handler function for the XML parser <strong>$parser</strong>.
  
  A processing instruction has the following format: 
  ]]>
  
  PHP code is delimited by the <return>\<?php</return> processing instruction. As such it is possible to have PHP code within an XML document. However, the PI end tag (<return>?&gt;</return>) must not be part of the data. If a PI end tag exists as part of the embedded PHP code, the rest of the PHP code and the "real" PI end tag, will be treated as character data.

<comment>Param:</comment>
  <info>XMLParser</info>  <strong>$parser</strong>   The XML parser.
  <info>callable</info>   <strong>$handler</strong>  If <info>null</info> or an empty string is passed, the handler is reset to its default
                       state.
                       
                       If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                       
                       If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an object set with
                       <strong>xml_set_object()</strong>.
                       
                       The signature of the handler must be:
                       <info>void</info>handler<info>XMLParser</info><strong>$parser</strong><info>string</info><strong>$target</strong><info>string</info><strong>$data</strong> <strong>$parser</strong> The XML parser
                       calling the handler. <strong>$target</strong> The processing instruction target. <strong>$data</strong> The
                       processing instruction data.
                       
                       The XML parser calling the handler.
                       
                       The processing instruction target.
                       
                       The processing instruction data.
  <info>XMLParser</info>  <strong>$parser</strong>   The XML parser calling the handler.
  <info>string</info>     <strong>$target</strong>   The processing instruction target.
  <info>string</info>     <strong>$data</strong>     The processing instruction data.

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


id: xml_set_start_namespace_decl_handler
type: function
doc:
<comment>Description:</comment>
  Set up start namespace declaration handler
    
  
  Set a handler to be called when a namespace is declared. Namespace declarations occur inside start
  tags. But the namespace declaration start handler is called before the start tag handler for each
  namespace declared in that start tag.

<comment>Param:</comment>
  <info>XMLParser</info>     <strong>$parser</strong>   The XML parser.
  <info>callable</info>      <strong>$handler</strong>  If <info>null</info> or an empty string is passed, the handler is reset to its default
                          state.
                          
                          If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                          
                          If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an object set
                          with <strong>xml_set_object()</strong>.
                          
                          The signature of the handler must be:
                          <info>void</info>handler<info>XMLParser</info><strong>$parser</strong><info>string</info><info>false</info></info><strong>$prefix</strong><info>string</info><strong>$uri</strong> <strong>$parser</strong> The XML
                          parser calling the handler. <strong>$prefix</strong> The prefix is a string used to
                          reference the namespace within an XML object. <info>false</info> if no prefix exists.
                          <strong>$uri</strong> Uniform Resource Identifier (URI) of namespace.
                          
                          The XML parser calling the handler.
                          
                          The prefix is a string used to reference the namespace within an XML
                          object. <info>false</info> if no prefix exists.
                          
                          Uniform Resource Identifier (URI) of namespace.
  <info>XMLParser</info>     <strong>$parser</strong>   The XML parser calling the handler.
  <info>string|false</info>  <strong>$prefix</strong>   The prefix is a string used to reference the namespace within an XML
                          object. <info>false</info> if no prefix exists.
  <info>string</info>        <strong>$uri</strong>      Uniform Resource Identifier (URI) of namespace.

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

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


id: xml_set_unparsed_entity_decl_handler
type: function
doc:
<comment>Description:</comment>
  Set up unparsed entity declaration handler
    
  
  Sets the unparsed entity declaration handler function for the XML parser <strong>$parser</strong>.
  
  The <strong>$handler</strong> will be called if the XML parser encounters an external entity declaration with an
  NDATA declaration, like the following: $name</strong> {<strong>$publicId</strong> | <strong>$systemId</strong>} NDATA <strong>$notationName</strong>
  ]]>
  
  See section 4.2.2 of the XML 1.0 spec for the definition of notation declared external entities.

<comment>Param:</comment>
  <info>XMLParser</info>     <strong>$parser</strong>         The XML parser.
  <info>callable</info>      <strong>$handler</strong>        If <info>null</info> or an empty string is passed, the handler is reset to its
                                default state.
                                
                                If <strong>$handler</strong> is a <info>callable</info>, the callable is set as the handler.
                                
                                If <strong>$handler</strong> is a <info>string</info>, it can be the name of a method of an object
                                set with <strong>xml_set_object()</strong>.
                                
                                The signature of the handler must be:
                                <info>void</info>handler<info>XMLParser</info><strong>$parser</strong><info>string</info><strong>$entity_name</strong><info>string</info><info>false</info></info><strong>$base</strong><info>string</info><strong>$system_id</strong><info>string</info><info>false</info></info><strong>$public_id</strong><info>string</info><info>false</info></info><strong>$notation_name</strong>
                                <strong>$parser</strong> The XML parser calling the handler. <strong>$entity_name</strong> The name of
                                the entity that is about to be defined. <strong>$base</strong> This is the base for
                                resolving the system identifier (<strong>$systemId</strong>) of the external entity.
                                <strong>$system_id</strong> System identifier for the external entity. <strong>$public_id</strong>
                                Public identifier for the external entity. <strong>$notation_name</strong>  Name of
                                the notation of this entity (see <strong>xml_set_notation_decl_handler()</strong>).
                                
                                The XML parser calling the handler.
                                
                                The name of the entity that is about to be defined.
                                
                                This is the base for resolving the system identifier (<strong>$systemId</strong>) of
                                the external entity.
                                
                                System identifier for the external entity.
                                
                                Public identifier for the external entity.
                                
                                Name of the notation of this entity (see
                                <strong>xml_set_notation_decl_handler()</strong>).
  <info>XMLParser</info>     <strong>$parser</strong>         The XML parser calling the handler.
  <info>string</info>        <strong>$entity_name</strong>    The name of the entity that is about to be defined.
  <info>string|false</info>  <strong>$base</strong>           This is the base for resolving the system identifier (<strong>$systemId</strong>) of
                                the external entity.
  <info>string</info>        <strong>$system_id</strong>      System identifier for the external entity.
  <info>string|false</info>  <strong>$public_id</strong>      Public identifier for the external entity.
  <info>string|false</info>  <strong>$notation_name</strong>  Name of the notation of this entity (see
                                <strong>xml_set_notation_decl_handler()</strong>).

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


id: xmlrpc_decode
type: function
doc:
<comment>Description:</comment>
  Decodes XML into native PHP types
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.

<comment>Param:</comment>
  <info>string</info>  <strong>$xml</strong>       XML response returned by XMLRPC method.
  <info>string</info>  <strong>$encoding</strong>  Input encoding supported by iconv.

<comment>Return:</comment>
  <info>mixed</info>  Returns either an array, or an integer, or a string, or a boolean according to the response
         returned by the XMLRPC method.

<comment>See Also:</comment>
   * <strong>xmlrpc_encode_request()</strong>
   * <strong>xmlrpc_is_fault()</strong>


id: xmlrpc_decode_request
type: function
doc:
<comment>Description:</comment>
  Decodes XML into native PHP types
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>mixed</info>  


id: xmlrpc_encode
type: function
doc:
<comment>Description:</comment>
  Generates XML for a PHP value
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is
  currently not documented; only its argument list is available.

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


id: xmlrpc_encode_request
type: function
doc:
<comment>Description:</comment>
  Generates XML for a method request
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.

<comment>Param:</comment>
  <info>string</info>  <strong>$method</strong>          Name of the method to call.
  <info>mixed</info>   <strong>$params</strong>          Method parameters compatible with method signature.
  <info>array</info>   <strong>$output_options</strong>  Array specifying output options may contain (default values are
                           emphasised): output_type: php, xmlverbosity: no_white_space,
                           newlines_only, prettyescaping: cdata, non-ascii, non-print, markup (may
                           be a string with one value or an array with multiple values)version:
                           simple, xmlrpc, soap 1.1, autoencoding: iso-8859-1, other character set
                           supported by iconv
                           
                           output_type: php, xml
                           
                           verbosity: no_white_space, newlines_only, pretty
                           
                           escaping: cdata, non-ascii, non-print, markup (may be a string with one
                           value or an array with multiple values)
                           
                           version: simple, xmlrpc, soap 1.1, auto
                           
                           encoding: iso-8859-1, other character set supported by iconv

<comment>Return:</comment>
  <info>string</info>  Returns a string containing the XML representation of the request.

<comment>See Also:</comment>
   * <strong>stream_context_create()</strong>
   * <strong>file_get_contents()</strong>
   * <strong>xmlrpc_decode()</strong>


id: xmlrpc_get_type
type: function
doc:
<comment>Description:</comment>
  Gets xmlrpc type for a PHP value
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is especially useful for base64 and datetime strings.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  PHP value

<comment>Return:</comment>
  <info>string</info>  Returns the XML-RPC type.

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


id: xmlrpc_is_fault
type: function
doc:
<comment>Description:</comment>
  Determines if an array value represents an XMLRPC fault
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.

<comment>Param:</comment>
  <info>array</info>  <strong>$arg</strong>  Array returned by <strong>xmlrpc_decode()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the argument means fault, <info>false</info> otherwise. Fault description is available in
        <return>$arg["faultString"]</return>, fault code is in <return>$arg["faultCode"]</return>.

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


id: xmlrpc_parse_method_descriptions
type: function
doc:
<comment>Description:</comment>
  Decodes XML into a list of method descriptions
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is
  currently not documented; only its argument list is available.

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


id: xmlrpc_server_add_introspection_data
type: function
doc:
<comment>Description:</comment>
  Adds introspection documentation
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is
  currently not documented; only its argument list is available.

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


id: xmlrpc_server_call_method
type: function
doc:
<comment>Description:</comment>
  Parses XML requests and call methods
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is
  currently not documented; only its argument list is available.

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


id: xmlrpc_server_create
type: function
doc:
<comment>Description:</comment>
  Creates an xmlrpc server
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>resource</info>  


id: xmlrpc_server_destroy
type: function
doc:
<comment>Description:</comment>
  Destroys server resources
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is
  currently not documented; only its argument list is available.

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


id: xmlrpc_server_register_introspection_callback
type: function
doc:
<comment>Description:</comment>
  Register a PHP function to generate documentation
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is
  currently not documented; only its argument list is available.

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


id: xmlrpc_server_register_method
type: function
doc:
<comment>Description:</comment>
  Register a PHP function to resource method matching method_name
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.
  
  This function is
  currently not documented; only its argument list is available.

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


id: xmlrpc_set_type
type: function
doc:
<comment>Description:</comment>
  Sets xmlrpc type, base64 or datetime, for a PHP string value
  
  Sets xmlrpc type, base64 or datetime, for a PHP string value.
  
  This function is
  EXPERIMENTAL. The behaviour of this function, its name, and
  surrounding documentation may change without notice in a future release of PHP.
  This function should be used at your own risk.

<comment>Param:</comment>
  <info>string</info>  <strong>$value</strong>  Value to set the type
  <info>string</info>  <strong>$type</strong>   'base64' or 'datetime'

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure. If successful, <strong>$value</strong> is converted to an
        object.


id: yaml_emit
type: function
doc:
<comment>Description:</comment>
  Returns the YAML representation of a value
  
  Generate a YAML representation of the provided <strong>$data</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$data</strong>       The <strong>$data</strong> being encoded. Can be any type except a <info>resource</info>.
  <info>int</info>    <strong>$encoding</strong>   Output character encoding chosen from <info>YAML_ANY_ENCODING</info>, <info>YAML_UTF8_ENCODING</info>,
                     <info>YAML_UTF16LE_ENCODING</info>, <info>YAML_UTF16BE_ENCODING</info>.
  <info>int</info>    <strong>$linebreak</strong>  Output linebreak style chosen from <info>YAML_ANY_BREAK</info>, <info>YAML_CR_BREAK</info>,
                     <info>YAML_LN_BREAK</info>, <info>YAML_CRLN_BREAK</info>.
  <info>array</info>  <strong>$callbacks</strong>  Content handlers for emitting YAML nodes. Associative <info>array</info> of classname =&gt;
                     <info>callable</info> mappings. See emit callbacks for more details.

<comment>Return:</comment>
  <info>string</info>  Returns a YAML encoded <info>string</info> on success.

<comment>See Also:</comment>
   * <strong>yaml_emit_file()</strong>
   * <strong>yaml_parse()</strong>


id: yaml_emit_file
type: function
doc:
<comment>Description:</comment>
  Send the YAML representation of a value to a file
  
  Generate a YAML representation of the provided <strong>$data</strong> in the <strong>$filename</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>   Path to the file.
  <info>mixed</info>   <strong>$data</strong>       The <strong>$data</strong> being encoded. Can be any type except a <info>resource</info>.
  <info>int</info>     <strong>$encoding</strong>   Output character encoding chosen from <info>YAML_ANY_ENCODING</info>, <info>YAML_UTF8_ENCODING</info>,
                      <info>YAML_UTF16LE_ENCODING</info>, <info>YAML_UTF16BE_ENCODING</info>.
  <info>int</info>     <strong>$linebreak</strong>  Output linebreak style chosen from <info>YAML_ANY_BREAK</info>, <info>YAML_CR_BREAK</info>,
                      <info>YAML_LN_BREAK</info>, <info>YAML_CRLN_BREAK</info>.
  <info>array</info>   <strong>$callbacks</strong>  Content handlers for emitting YAML nodes. Associative <info>array</info> of classname =&gt;
                      <info>callable</info> mappings. See emit callbacks for more details.

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

<comment>See Also:</comment>
   * <strong>yaml_emit()</strong>
   * <strong>yaml_parse()</strong>


id: yaml_parse
type: function
doc:
<comment>Description:</comment>
  Parse a YAML stream
  
  Convert all or part of a YAML document stream to a PHP variable.

<comment>Param:</comment>
  <info>string</info>  <strong>$input</strong>      The <info>string</info> to parse as a YAML document stream.
  <info>int</info>     <strong>$pos</strong>        Document to extract from stream (<return>-1</return> for all documents, <return>0</return> for first document,
                      ...).
  <info>int</info>     <strong>$ndocs</strong>      If <strong>$ndocs</strong> is provided, then it is filled with the number of documents found in
                      stream.
  <info>array</info>   <strong>$callbacks</strong>  Content handlers for YAML nodes. Associative <info>array</info> of YAML tag =&gt; <info>callable</info>
                      mappings. See parse callbacks for more details.

<comment>Return:</comment>
  <info>mixed</info>  Returns the value encoded in <strong>$input</strong> in appropriate PHP type or <info>false</info> on failure. If <strong>$pos</strong> is
         <return>-1</return> an <info>array</info> will be returned with one entry for each document found in the stream.

<comment>See Also:</comment>
   * <strong>yaml_parse_file()</strong>
   * <strong>yaml_parse_url()</strong>
   * <strong>yaml_emit()</strong>


id: yaml_parse_file
type: function
doc:
<comment>Description:</comment>
  Parse a YAML stream from a file
  
  Convert all or part of a YAML document stream read from a file to a PHP variable.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>   Path to the file.
  <info>int</info>     <strong>$pos</strong>        Document to extract from stream (<return>-1</return> for all documents, <return>0</return> for first document,
                      ...).
  <info>int</info>     <strong>$ndocs</strong>      If <strong>$ndocs</strong> is provided, then it is filled with the number of documents found in
                      stream.
  <info>array</info>   <strong>$callbacks</strong>  Content handlers for YAML nodes. Associative <info>array</info> of YAML tag =&gt; <info>callable</info>
                      mappings. See parse callbacks for more details.

<comment>Return:</comment>
  <info>mixed</info>  Returns the value encoded in <strong>$input</strong> in appropriate PHP type or <info>false</info> on failure. If <strong>$pos</strong> is
         <return>-1</return> an <info>array</info> will be returned with one entry for each document found in the stream.

<comment>See Also:</comment>
   * <strong>yaml_parse()</strong>
   * <strong>yaml_parse_url()</strong>
   * <strong>yaml_emit()</strong>


id: yaml_parse_url
type: function
doc:
<comment>Description:</comment>
  Parse a Yaml stream from a URL
  
  Convert all or part of a YAML document stream read from a URL to a PHP variable.

<comment>Param:</comment>
  <info>string</info>  <strong>$url</strong>        <strong>$url</strong> should be of the form "scheme://...". PHP will search for a protocol
                      handler (also known as a wrapper) for that scheme. If no wrappers for that
                      protocol are registered, PHP will emit a notice to help you track potential
                      problems in your script and then continue as though filename specifies a
                      regular file.
  <info>int</info>     <strong>$pos</strong>        Document to extract from stream (<return>-1</return> for all documents, <return>0</return> for first document,
                      ...).
  <info>int</info>     <strong>$ndocs</strong>      If <strong>$ndocs</strong> is provided, then it is filled with the number of documents found in
                      stream.
  <info>array</info>   <strong>$callbacks</strong>  Content handlers for YAML nodes. Associative <info>array</info> of YAML tag =&gt; <info>callable</info>
                      mappings. See parse callbacks for more

<comment>Return:</comment>
  <info>mixed</info>  Returns the value encoded in <strong>$input</strong> in appropriate PHP type or <info>false</info> on failure. If <strong>$pos</strong> is
         <return>-1</return> an <info>array</info> will be returned with one entry for each document found in the stream.

<comment>See Also:</comment>
   * <strong>yaml_parse()</strong>
   * <strong>yaml_parse_file()</strong>
   * <strong>yaml_emit()</strong>


id: yaz_addinfo
type: function
doc:
<comment>Description:</comment>
  Returns additional error information
  
  Returns additional error information for the last request on the server.
  
  With some servers, this function may return the same string as  <strong>yaz_error()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>  The connection resource returned by <strong>yaz_connect()</strong>.

<comment>Return:</comment>
  <info>string</info>  A string containing additional error information or an empty string if the last operation
          was successful or if no additional information was provided by the server.

<comment>See Also:</comment>
   * <strong>yaz_error()</strong>
   * <strong>yaz_errno()</strong>


id: yaz_ccl_conf
type: function
doc:
<comment>Description:</comment>
  Configure CCL parser
  
  This function configures the CCL query parser for a server with  definitions of access points (CCL
  qualifiers) and their mapping to RPN.
  
  To map a specific CCL query to RPN afterwards call the  <strong>yaz_ccl_parse()</strong> function.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>      The connection resource returned by <strong>yaz_connect()</strong>.
  <info>array</info>     <strong>$config</strong>  An array of configuration. Each key of the array is the name of a CCL field and
                     the corresponding value holds a string that specifies a  mapping to RPN.
                     
                     The mapping is a sequence of attribute-type, attribute-value pairs.
                     Attribute-type and attribute-value is separated by an equal sign  (<return>=</return>). Each
                     pair is separated by white space.
                     
                     Additional information can be found on the CCL page.

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

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


id: yaz_ccl_parse
type: function
doc:
<comment>Description:</comment>
  Invoke CCL Parser
  
  This function invokes a CCL parser. It converts a given CCL FIND query to an RPN query which may
  be passed to the <strong>yaz_search()</strong>  function to perform a search.
  
  To define a set of valid CCL fields call <strong>yaz_ccl_conf()</strong>  prior to this function.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>      The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$query</strong>   The CCL FIND query.
  <info>array</info>     <strong>$result</strong>  If the function was executed successfully, this will be an array  containing
                     the valid RPN query under the key <return>rpn</return>.
                     
                     Upon failure, three indexes are set in this array to indicate the cause of
                     failure:  <return>errorcode</return> - the CCL error code (integer) <return>errorstring</return> - the CCL error
                     string <return>errorpos</return> - approximate position in query of failure (integer is
                     character position)
                     
                     <return>errorcode</return> - the CCL error code (integer)
                     
                     <return>errorstring</return> - the CCL error string
                     
                     <return>errorpos</return> - approximate position in query of failure (integer is character
                     position)

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


id: yaz_close
type: function
doc:
<comment>Description:</comment>
  Close YAZ connection
  
  Closes the connection given by parameter <strong>$id</strong>.
  
  This function will only close a non-persistent connection opened by setting the <return>persistent</return> option
  to <info>false</info> with <strong>yaz_connect()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>  The connection resource returned by <strong>yaz_connect()</strong>.

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

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


id: yaz_connect
type: function
doc:
<comment>Description:</comment>
  Prepares for a connection to a Z39.50 server
    
  
  This function returns a connection resource on success, zero on failure.
  
  <strong>yaz_connect()</strong> prepares for a connection to a Z39.50 server.  This function is non-blocking and
  does not attempt to establish a connection  - it merely prepares a connect to be performed later
  when <strong>yaz_wait()</strong> is called.
  
  The YAZ proxy is a freely available Z39.50 proxy.

<comment>Param:</comment>
  <info>string</info>  <strong>$zurl</strong>     A string that takes the form <return>host[:port][/database]</return>. If port is omitted, port
                    210 is used. If database is omitted  <return>Default</return> is used.
  <info>mixed</info>   <strong>$options</strong>  If given as a string, it is treated as the Z39.50 V2 authentication  string
                    (OpenAuth).
                    
                    If given as an array, the contents of the array serves as options. user Username
                    for authentication. group Group for authentication. password Password for
                    authentication. cookie Cookie for session (YAZ proxy). proxy Proxy for
                    connection (YAZ proxy). persistent A boolean. If <info>true</info> the connection is
                    persistent; If <info>false</info> the connection is not persistent. By default connections
                    are persistent.  If you open a persistent connection, you won't be able to close
                    it later with <strong>yaz_close()</strong>. piggyback A boolean. If <info>true</info> piggyback is enabled for
                    searches; If <info>false</info> piggyback is disabled. By default piggyback is enabled.
                    Enabling piggyback is more efficient and usually saves a  network-round-trip for
                    first time fetches of records. However, a  few Z39.50 servers do not support
                    piggyback or they ignore element set names. For those, piggyback should be
                    disabled. charset A string that specifies character set to be used in Z39.50
                    language and character set negotiation. Use strings such as: <return>ISO-8859-1</return>, <return>UTF-8</return>,
                    <return>UTF-16</return>.  Most Z39.50 servers do not support this feature (and thus, this is
                    ignored). Many servers use the ISO-8859-1 encoding for queries and messages.
                    MARC21/USMARC records are not affected by this setting. preferredMessageSize An
                    integer that specifies the maximum byte size of all records to be returned by a
                    target during retrieval. See the Z39.50 standard for more information.  This
                    option is supported in PECL YAZ 1.0.5 or later. maximumRecordSize An integer
                    that specifies the maximum byte size of a single record to be returned by a
                    target during retrieval. This entity is referred to as Exceptional-record-size
                    in the Z39.50 standard.  This option is supported in PECL YAZ 1.0.5 or later.
                    
                    Username for authentication.
                    
                    Group for authentication.
                    
                    Password for authentication.
                    
                    Cookie for session (YAZ proxy).
                    
                    Proxy for connection (YAZ proxy).
                    
                    A boolean. If <info>true</info> the connection is persistent; If <info>false</info> the connection is not
                    persistent. By default connections are persistent.
                    
                    If you open a persistent connection, you won't be able to close  it later with
                    <strong>yaz_close()</strong>.
                    
                    A boolean. If <info>true</info> piggyback is enabled for searches; If <info>false</info> piggyback is
                    disabled. By default piggyback is enabled.
                    
                    Enabling piggyback is more efficient and usually saves a  network-round-trip for
                    first time fetches of records. However, a  few Z39.50 servers do not support
                    piggyback or they ignore element set names. For those, piggyback should be
                    disabled.
                    
                    A string that specifies character set to be used in Z39.50  language and
                    character set negotiation. Use strings such as: <return>ISO-8859-1</return>, <return>UTF-8</return>,  <return>UTF-16</return>.
                    
                    Most Z39.50 servers do not support this feature (and thus, this is ignored).
                    Many servers use the ISO-8859-1 encoding for queries and messages. MARC21/USMARC
                    records are not affected by this setting.
                    
                    An integer that specifies the maximum byte size of all records to be returned by
                    a target during retrieval. See the Z39.50 standard for more information.
                    
                    This option is supported in PECL YAZ 1.0.5 or later.
                    
                    An integer that specifies the maximum byte size of a single record to be
                    returned by a target during retrieval. This entity is referred to as
                    Exceptional-record-size in the Z39.50 standard.
                    
                    This option is supported in PECL YAZ 1.0.5 or later.

<comment>Return:</comment>
  <info>mixed</info>  A connection resource on success, <info>false</info> on error.

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


id: yaz_database
type: function
doc:
<comment>Description:</comment>
  Specifies the databases within a session
    
  
  This function allows you to change databases within a session by  specifying one or more databases
  to be used in search, retrieval, etc. - overriding databases specified in call to  <strong>yaz_connect()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>         The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$databases</strong>  A string containing one or more databases. Multiple databases are  separated
                        by a plus sign <return>+</return>.

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


id: yaz_element
type: function
doc:
<comment>Description:</comment>
  Specifies Element-Set Name for retrieval
    
  
  This function sets the element set name for retrieval.
  
  Call this function before <strong>yaz_search()</strong> or <strong>yaz_present()</strong> to specify the element set name for
  records to be retrieved.
  
  If this function appears to have no effect, see the description of the  <return>piggybacking</return> option in
  <strong>yaz_connect()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>          The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$elementset</strong>  Most servers support <return>F</return> (for full records) and <return>B</return> (for brief records).

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


id: yaz_errno
type: function
doc:
<comment>Description:</comment>
  Returns error number
  
  Returns an error number for the server (last request) identified by <strong>$id</strong>.
  
  <strong>yaz_errno()</strong> should be called after network activity for each server - (after <strong>yaz_wait()</strong> returns)
  to determine the success or failure of the last operation (e.g. search).

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>  The connection resource returned by <strong>yaz_connect()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns an error code. The error code is either a Z39.50 diagnostic code (usually a Bib-1
       diagnostic) or a client side error code which is  generated by PHP/YAZ itself, such as
       "Connect failed", "Init Rejected",  etc.

<comment>See Also:</comment>
   * <strong>yaz_error()</strong>
   * <strong>yaz_addinfo()</strong>


id: yaz_error
type: function
doc:
<comment>Description:</comment>
  Returns error description
  
  <strong>yaz_error()</strong> returns an English text message corresponding to the last error number as returned by
  <strong>yaz_errno()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>  The connection resource returned by <strong>yaz_connect()</strong>.

<comment>Return:</comment>
  <info>string</info>  Returns an error text message for server (last request), identified by parameter <strong>$id</strong>. An
          empty string is returned if the last operation was successful.

<comment>See Also:</comment>
   * <strong>yaz_errno()</strong>
   * <strong>yaz_addinfo()</strong>


id: yaz_es
type: function
doc:
<comment>Description:</comment>
  Prepares for an Extended Service Request
    
  
  This function prepares for an Extended Service Request. Extended Services is family of various
  Z39.50 facilities, such as Record Update, Item Order, Database administration etc.
  
  Many Z39.50 Servers do not support Extended Services.
  
  The <strong>yaz_es()</strong> creates an Extended Service Request packages and puts it into a queue of operations.
  Use <strong>yaz_wait()</strong> to send the request(s) to the server. After completion of <strong>yaz_wait()</strong> the result of
  the Extended Service operation should be expected with a call to <strong>yaz_es_result()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>    The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$type</strong>  A string which represents the type of the Extended Service:  <return>itemorder</return> (Item
                   Order), <return>create</return> (Create Database), <return>drop</return> (Drop Database), <return>commit</return> (Commit
                   Operation), <return>update</return> (Update Record), <return>xmlupdate</return> (XML Update). Each type is
                   specified in the following section.
  <info>array</info>     <strong>$args</strong>  An array with extended service options plus package specific options. The options
                   are identical to those offered in the C API of ZOOM C. Refer to the ZOOM Extended
                   Services.

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

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


id: yaz_es_result
type: function
doc:
<comment>Description:</comment>
  Inspects Extended Services Result
    
  
  This function inspects the last returned Extended Service result from a server. An Extended
  Service is  initiated by either <strong>yaz_item_order()</strong> or <strong>yaz_es()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>  The connection resource returned by <strong>yaz_connect()</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns array with element <return>targetReference</return> for the reference for the extended service
         operation (generated and returned from the server).

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


id: yaz_get_option
type: function
doc:
<comment>Description:</comment>
  Returns value of option for connection
  
  Returns the value of the option specified with <strong>$name</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>    The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$name</strong>  The option name.

<comment>Return:</comment>
  <info>string</info>  Returns the value of the specified option or an empty string if the option wasn't set.

<comment>See Also:</comment>
   * 
     The description of <strong>yaz_set_option()</strong> for available 
     options
    


id: yaz_hits
type: function
doc:
<comment>Description:</comment>
  Returns number of hits for last search
  
  <strong>yaz_hits()</strong> returns the number of hits for the last search.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>            The connection resource returned by <strong>yaz_connect()</strong>.
  <info>array</info>     <strong>$searchresult</strong>  Result array for detailed search result information.

<comment>Return:</comment>
  <info>int</info>  Returns the number of hits for the last search or 0 if no search was  performed.
       
       The search result array (if supplied) holds information that is returned by a Z39.50 server
       in the SearchResult-1 format part of a search response. The SearchResult-1 format can be used
       to obtain information about hit counts for various parts of the query (subquery). In
       particular, it is possible to obtain hit counts for the individual search terms in a query.
       Information for first subquery is in $array[0], second subquery in $array[1], and so forth.
       
       The SearchResult facility requires PECL YAZ 1.0.5 or later and YAZ 2.1.9 or later.
       
       Very few Z39.50 implementations support the SearchResult facility.


id: yaz_itemorder
type: function
doc:
<comment>Description:</comment>
  Prepares for Z39.50 Item Order with an ILL-Request package
    
  
  This function prepares for an Extended Services request using the Profile for the Use of Z39.50
  Item Order Extended Service to Transport ILL (Profile/1). See this and the specification.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>    The connection resource returned by <strong>yaz_connect()</strong>.
  <info>array</info>     <strong>$args</strong>  Must be an associative array with information about the Item Order  request to be
                   sent. The key of the hash is the name of the  corresponding ASN.1 tag path. For
                   example, the ISBN below the Item-ID has the key item-id,ISBN.
                   
                   The ILL-Request parameters are:
                   
                   There are also a few parameters that are part of the Extended Services Request
                   package and the ItemOrder package:

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


id: yaz_present
type: function
doc:
<comment>Description:</comment>
  Prepares for retrieval (Z39.50 present)
    
  
  This function prepares for retrieval of records after a successful search.
  
  The <strong>yaz_range()</strong> function should be called prior to this function to specify the range of records
  to be retrieved.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>  The connection resource returned by <strong>yaz_connect()</strong>.

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


id: yaz_range
type: function
doc:
<comment>Description:</comment>
  Specifies a range of records to retrieve
    
  
  Specifies a range of records to retrieve.
  
  This function should be called before <strong>yaz_search()</strong> or  <strong>yaz_present()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>      The connection resource returned by <strong>yaz_connect()</strong>.
  <info>int</info>       <strong>$start</strong>   Specifies the position of the first record to be retrieved. The  records
                     numbers goes from 1 to <strong>yaz_hits()</strong>.
  <info>int</info>       <strong>$number</strong>  Specifies the number of records to be retrieved.

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


id: yaz_record
type: function
doc:
<comment>Description:</comment>
  Returns a record
  
  The <strong>yaz_record()</strong> function inspects a record in the current result set at the position specified by
  parameter <strong>$pos</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>      The connection resource returned by <strong>yaz_connect()</strong>.
  <info>int</info>       <strong>$pos</strong>     The record position. Records positions in a result set are numbered 1, 2, ...
                     $hits where $hits is the count returned by <strong>yaz_hits()</strong>.
  <info>string</info>    <strong>$type</strong>    The <strong>$type</strong> specifies the form of the returned record.
                     
                     It is the application which is responsible for actually ensuring that the
                     records are returned from the Z39.50/SRW server in the proper format. The type
                     given only specifies a conversion to take place on the client side (in
                     PHP/YAZ).
                     
                     Besides conversion of the transfer record to a string/array, PHP/YAZ it is also
                     possible to perform a character set conversion of the record. Especially for
                     USMARC/MARC21 that is recommended since these are typically returned in the
                     character set MARC-8 that is not supported by browsers, etc. To specify a
                     conversion, add <return>; charset=</return>from<return>, </return>to where from is the original character set  of
                     the record and to is the resulting character set (as seen by PHP).
                     
                     The record is returned as a string for simple display. In this mode, all MARC
                     records are converted to a line-by-line format since ISO2709 is hardly
                     readable. XML records and SUTRS are returned in their original format. GRS-1
                     are returned in a (ugly) line-by-line format.
                     
                     This format is suitable if records are to be displayed in a quick way - for
                     debugging - or because it is not feasible to perform proper display.
                     
                     The record is returned as an XML string if possible. In this mode, all MARC
                     records are converted to  MARCXML. XML records and SUTRS are returned in their
                     original format. GRS-1 is not supported.
                     
                     This format is similar to <strong>$string</strong> except that MARC records are converted to
                     MARCXML
                     
                     This format is suitable if records are processed by an XML parser or XSLT
                     processor afterwards.
                     
                     The record is returned as a string in its original form. This type is suitable
                     for MARC, XML and SUTRS. It does not work for GRS-1.
                     
                     MARC records are returned as a ISO2709 string. XML and SUTRS are returned as
                     strings.
                     
                     The syntax of the record is returned as a string, i.e. <return>USmarc</return>, <return>GRS-1</return>, <return>XML</return>, etc.
                     
                     The name of database associated with record at the position is returned as a
                     string.
                     
                     The record is returned as an array that reflects the GRS-1 structure. This type
                     is suitable for MARC and GRS-1. XML, SUTRS are not supported and if the actual
                     record is XML or SUTRS an empty string will be returned.
                     
                     The array returned consists of a list corresponding to each leaf/internal node
                     of GRS-1. Each list item consists a sub list with first element path and data
                     (if data is available).
                     
                     The path which is a string holds a list of each tree component (of the
                     structured GRS-1 record) from root to leaf. Each component is a tag type, tag
                     value pair of the form <return>(</return>type<return>,</return> value
                     
                     String tags normally has a corresponding tag type 3. MARC can also be returned
                     as an array (they are converted to GRS-1 internally).
  <info></info>          <strong>$string</strong>  The record is returned as an XML string if possible. In this mode, all MARC
                     records are converted to  MARCXML. XML records and SUTRS are returned in their
                     original format. GRS-1 is not supported.
                     
                     This format is similar to <strong>$string</strong> except that MARC records are converted to
                     MARCXML
                     
                     This format is suitable if records are processed by an XML parser or XSLT
                     processor afterwards.

<comment>Return:</comment>
  <info>string</info>  Returns the record at position <strong>$pos</strong> or an empty string if no record exists at the given
          position.
          
          If no database record exists at the given position an empty string is  returned.


id: yaz_scan
type: function
doc:
<comment>Description:</comment>
  Prepares for a scan
  
  This function prepares for a Z39.50 Scan Request on the specified  connection.
  
  To actually transfer the Scan Request to the server and receive the Scan Response, <strong>yaz_wait()</strong> must
  be called. Upon completion of <strong>yaz_wait()</strong> call <strong>yaz_error()</strong> and <strong>yaz_scan_result()</strong> to handle the
  response.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>         The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$type</strong>       Currently only type <return>rpn</return> is supported.
  <info>string</info>    <strong>$startterm</strong>  Starting term point for the scan.
                        
                        The form in which the starting term is specified is given by parameter
                        <strong>$type</strong>.
                        
                        The syntax this parameter is similar to the RPN query as described in
                        <strong>yaz_search()</strong>. It consists of zero or more  <return>@attr</return>-operator specifications,
                        then followed by  exactly one token.
  <info>array</info>     <strong>$flags</strong>      This optional parameter specifies additional information to control  the
                        behaviour of the scan request. Three indexes are currently read  from the
                        flags array: <return>number</return> (number of terms requested), <return>position</return> (preferred
                        position of term) and <return>stepSize</return> (preferred step size).

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


id: yaz_scan_result
type: function
doc:
<comment>Description:</comment>
  Returns Scan Response result
  
  <strong>yaz_scan_result()</strong> returns terms and associated information as received from the server in the last
  performed <strong>yaz_scan()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>      The connection resource returned by <strong>yaz_connect()</strong>.
  <info>array</info>     <strong>$result</strong>  If given, this array will be modified to hold additional information  taken
                     from the Scan Response: <return>number</return> - Number of entries returned <return>stepsize</return> - Step
                     size <return>position</return> - Position of term <return>status</return> - Scan status
                     
                     <return>number</return> - Number of entries returned
                     
                     <return>stepsize</return> - Step size
                     
                     <return>position</return> - Position of term
                     
                     <return>status</return> - Scan status

<comment>Return:</comment>
  <info>array</info>  Returns an array (0..n-1) where n is the number of terms returned. Each  value is a pair
         where the first item is the term, and the second item is  the result-count.


id: yaz_schema
type: function
doc:
<comment>Description:</comment>
  Specifies schema for retrieval
    
  
  <strong>yaz_schema()</strong> specifies the schema for retrieval.
  
  This function should be called before  <strong>yaz_search()</strong> or <strong>yaz_present()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>      The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$schema</strong>  Must be specified as an OID (Object Identifier) in a raw dot-notation  (like
                     <return>1.2.840.10003.13.4</return>) or as one of the known  registered schemas: <return>GILS-schema</return>,
                     <return>Holdings</return>, <return>Zthes</return>, ...

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


id: yaz_search
type: function
doc:
<comment>Description:</comment>
  Prepares for a search
  
  <strong>yaz_search()</strong> prepares for a search on the given  connection.
  
  Like <strong>yaz_connect()</strong> this function is non-blocking and only prepares for a search to be executed
  later when  <strong>yaz_wait()</strong> is called.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>     The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$type</strong>   This parameter represents the query type - only <return>"rpn"</return> is supported now in which
                    case the third argument specifies a Type-1  query in prefix query notation.
  <info>string</info>    <strong>$query</strong>  The RPN query is a textual representation of the Type-1 query as defined by the
                    Z39.50 standard. However, in the text representation as used by YAZ a prefix
                    notation is used, that is the operator precedes the operands. The query string
                    is a sequence of tokens where white space is ignored unless surrounded by double
                    quotes. Tokens beginning with an at-character (<return>@</return>) are considered operators,
                    otherwise they are treated as search terms.
                    
                    You can find information about attributes at the  Z39.50 Maintenance Agency
                    site.
                    
                    If you would like to use a more friendly notation, use the CCL parser -
                    functions <strong>yaz_ccl_conf()</strong> and  <strong>yaz_ccl_parse()</strong>.

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


id: yaz_set_option
type: function
doc:
<comment>Description:</comment>
  Sets one or more options for connection
  
  Sets one or more options on the given connection.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>     The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$name</strong>   May be either a string or an array.
                    
                    If given as a string, this will be the name of the option to set. You'll need to
                    give it's <strong>$value</strong>.
                    
                    If given as an array, this will be an associative array (option name  =&gt;
                    option value).
  <info>string</info>    <strong>$value</strong>  The new value of the option. Use this only if the previous argument is a string.

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


id: yaz_sort
type: function
doc:
<comment>Description:</comment>
  Sets sorting criteria
  
  This function sets sorting criteria and enables Z39.50 Sort.
  
  Call this function before <strong>yaz_search()</strong>. Using this function alone does not have any effect. When
  used in conjunction with <strong>yaz_search()</strong>, a Z39.50 Sort will be sent after a search response has been
  received and before any records are retrieved with Z39.50 Present (<strong>yaz_present()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>        The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$criteria</strong>  A string that takes the form field1 flags1 field2  flags2 where field1
                       specifies the primary attributes for sort, field2 seconds, etc..
                       
                       The field specifies either a numerical attribute combinations consisting of
                       type=value pairs separated by comma (e.g. <return>1=4,2=1</return>) ; or the field may specify
                       a plain string criteria (e.g.  <return>title</return>. The flags is a sequence of the
                       following  characters which may not be separated by any white space.
                       
                       Sort Flags<return>a</return> Sort ascending <return>d</return> Sort descending <return>i</return> Case insensitive sorting <return>s</return>
                       Case sensitive sorting
                       
                       Sort ascending
                       
                       Sort descending
                       
                       Case insensitive sorting
                       
                       Case sensitive sorting

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


id: yaz_syntax
type: function
doc:
<comment>Description:</comment>
  Specifies the preferred record syntax for retrieval
    
  
  <strong>yaz_syntax()</strong> specifies the preferred record syntax for retrieval
  
  This function should be called before <strong>yaz_search()</strong> or  <strong>yaz_present()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$id</strong>      The connection resource returned by <strong>yaz_connect()</strong>.
  <info>string</info>    <strong>$syntax</strong>  The syntax must be specified as an OID (Object Identifier) in a raw
                     dot-notation (like <return>1.2.840.10003.5.10</return>) or as one of the known registered record
                     syntaxes (sutrs, usmarc, grs1, xml, etc.).

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


id: yaz_wait
type: function
doc:
<comment>Description:</comment>
  Wait for Z39.50 requests to complete
  
  This function carries out networked (blocked) activity for outstanding requests which have been
  prepared by the functions  <strong>yaz_connect()</strong>, <strong>yaz_search()</strong>,  <strong>yaz_present()</strong>, <strong>yaz_scan()</strong> and
  <strong>yaz_itemorder()</strong>.
  
  <strong>yaz_wait()</strong> returns when all servers have either completed all requests or aborted (in case of
  errors).

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  An associative array of options: <return>timeout</return> Sets timeout in seconds. If a server has
                   not responded within the timeout it is considered dead and <strong>yaz_wait()</strong> returns.
                   The default value for timeout is 15 seconds. <return>event</return> A boolean.
                   
                   Sets timeout in seconds. If a server has not responded within the timeout it is
                   considered dead and <strong>yaz_wait()</strong> returns. The default value for timeout is 15
                   seconds.
                   
                   A boolean.

<comment>Return:</comment>
  <info>mixed</info>  Returns <info>true</info> on success or <info>false</info> on failure. In event mode, returns resource  or <info>false</info> on
         failure.


id: zend_thread_id
type: function
doc:
<comment>Description:</comment>
  Returns a unique identifier for the current thread
  
  This function returns a unique identifier for the current thread.

<comment>Return:</comment>
  <info>int</info>  Returns the thread id as an integer.


id: zend_version
type: function
doc:
<comment>Description:</comment>
  Gets the version of the current Zend engine
  
  Returns a string containing the version of the currently running Zend Engine.

<comment>Return:</comment>
  <info>string</info>  Returns the Zend Engine version number, as a string.

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


id: zip_close
type: function
doc:
<comment>Description:</comment>
  Close a ZIP file archive
  
  Closes the given ZIP file archive.

<comment>Param:</comment>
  <info>resource</info>  <strong>$zip</strong>  A ZIP file previously opened with <strong>zip_open()</strong>.

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

<comment>See Also:</comment>
   * <strong>zip_open()</strong>
   * <strong>zip_read()</strong>


id: zip_entry_close
type: function
doc:
<comment>Description:</comment>
  Close a directory entry
  
  Closes the specified directory entry.

<comment>Param:</comment>
  <info>resource</info>  <strong>$zip_entry</strong>  A directory entry previously opened <strong>zip_entry_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>zip_entry_open()</strong>
   * <strong>zip_entry_read()</strong>


id: zip_entry_compressedsize
type: function
doc:
<comment>Description:</comment>
  Retrieve the compressed size of a directory entry
  
  Returns the compressed size of the specified directory entry.

<comment>Param:</comment>
  <info>resource</info>  <strong>$zip_entry</strong>  A directory entry returned by <strong>zip_read()</strong>.

<comment>Return:</comment>
  <info>int|false</info>  The compressed size,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>zip_open()</strong>
   * <strong>zip_read()</strong>


id: zip_entry_compressionmethod
type: function
doc:
<comment>Description:</comment>
  Retrieve the compression method of a directory entry
  
  Returns the compression method of the directory entry specified by <strong>$zip_entry</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$zip_entry</strong>  A directory entry returned by <strong>zip_read()</strong>.

<comment>Return:</comment>
  <info>string|false</info>  The compression method,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>zip_open()</strong>
   * <strong>zip_read()</strong>


id: zip_entry_filesize
type: function
doc:
<comment>Description:</comment>
  Retrieve the actual file size of a directory entry
  
  Returns the actual size of the specified directory entry.

<comment>Param:</comment>
  <info>resource</info>  <strong>$zip_entry</strong>  A directory entry returned by <strong>zip_read()</strong>.

<comment>Return:</comment>
  <info>int|false</info>  The size of the directory entry,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>zip_open()</strong>
   * <strong>zip_read()</strong>


id: zip_entry_name
type: function
doc:
<comment>Description:</comment>
  Retrieve the name of a directory entry
  
  Returns the name of the specified directory entry.

<comment>Param:</comment>
  <info>resource</info>  <strong>$zip_entry</strong>  A directory entry returned by <strong>zip_read()</strong>.

<comment>Return:</comment>
  <info>string|false</info>  The name of the directory entry,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>zip_open()</strong>
   * <strong>zip_read()</strong>


id: zip_entry_open
type: function
doc:
<comment>Description:</comment>
  Open a directory entry for reading
  
  Opens a directory entry in a zip file for reading.

<comment>Param:</comment>
  <info>resource</info>  <strong>$zip_dp</strong>     A valid resource handle returned by <strong>zip_open()</strong>.
  <info>resource</info>  <strong>$zip_entry</strong>  A directory entry returned by <strong>zip_read()</strong>.
  <info>string</info>    <strong>$mode</strong>       Any of the modes specified in the documentation of <strong>fopen()</strong>.
                        
                        Currently, <strong>$mode</strong> is ignored and is always <return>"rb"</return>. This is due to the fact that
                        zip support in PHP is read only access.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        Unlike <strong>fopen()</strong> and other similar functions, the return value of <strong>zip_entry_open()</strong> only
        indicates the result of the operation and is not needed for reading or closing the directory
        entry.

<comment>See Also:</comment>
   * <strong>zip_entry_close()</strong>
   * <strong>zip_entry_read()</strong>


id: zip_entry_read
type: function
doc:
<comment>Description:</comment>
  Read from an open directory entry
  
  Reads from an open directory entry.

<comment>Param:</comment>
  <info>resource</info>  <strong>$zip_entry</strong>  A directory entry returned by <strong>zip_read()</strong>.
  <info>int</info>       <strong>$len</strong>        The number of bytes to return.
                        
                        This should be the uncompressed length you wish to read.

<comment>Return:</comment>
  <info>string|false</info>  Returns the data read, empty string on end of a file, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>zip_entry_open()</strong>
   * <strong>zip_entry_close()</strong>
   * <strong>zip_entry_filesize()</strong>


id: zip_open
type: function
doc:
<comment>Description:</comment>
  Open a ZIP file archive
  
  Opens a new zip archive for reading.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The file name of the ZIP archive to open.

<comment>Return:</comment>
  <info>resource|int|false</info>  Returns a resource handle for later use with <strong>zip_read()</strong> and <strong>zip_close()</strong> or
                      returns either <info>false</info> or the number of error if <strong>$filename</strong> does not exist or in
                      case of other error.

<comment>See Also:</comment>
   * <strong>zip_read()</strong>
   * <strong>zip_close()</strong>


id: zip_read
type: function
doc:
<comment>Description:</comment>
  Read next entry in a ZIP file archive
  
  Reads the next entry in a zip file archive.

<comment>Param:</comment>
  <info>resource</info>  <strong>$zip</strong>  A ZIP file previously opened with <strong>zip_open()</strong>.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a directory entry resource for later use with the <return>zip_entry_...</return> functions,
                  or <info>false</info> if there are no more entries to read, or an error code if an error
                  occurred.

<comment>See Also:</comment>
   * <strong>zip_open()</strong>
   * <strong>zip_close()</strong>
   * <strong>zip_entry_open()</strong>
   * <strong>zip_entry_read()</strong>


id: zlib_decode
type: function
doc:
<comment>Description:</comment>
  Uncompress any raw/gzip/zlib encoded data
  
  Uncompress any raw/gzip/zlib encoded data.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>        
  <info>int</info>     <strong>$max_length</strong>  

<comment>Return:</comment>
  <info>string|false</info>  Returns the uncompressed data,  or <info>false</info> on failure.

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


id: zlib_encode
type: function
doc:
<comment>Description:</comment>
  Compress data with the specified encoding
  
  Compress data with the specified encoding.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>      The data to compress.
  <info>int</info>     <strong>$encoding</strong>  The compression algorithm. Either <info>ZLIB_ENCODING_RAW</info>, <info>ZLIB_ENCODING_DEFLATE</info> or
                     <info>ZLIB_ENCODING_GZIP</info>.
  <info>int</info>     <strong>$level</strong>     

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

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


id: zlib_get_coding_type
type: function
doc:
<comment>Description:</comment>
  Returns the coding type used for output compression
  
  Returns the coding type used for output compression.

<comment>Return:</comment>
  <info>string|false</info>  Possible return values are <return>gzip</return>, <return>deflate</return>, or <info>false</info>.

<comment>See Also:</comment>
   * 
     The zlib.output_compression 
     directive
    


id: zookeeper_dispatch
type: function
doc:
<comment>Description:</comment>
  Calls callbacks for pending operations
  
  The <strong>zookeeper_dispatch()</strong> function calls the callbacks passed by operations like Zookeeper::get or
  Zookeeper::exists.
  
  Since version 0.4.0, this function must be called manually to achieve asynchronous operations. If
  you want that to be done automatically, you also can declare ticks at the beginning of your
  program.
  
  After PHP 7.1, you can ignore this function. This extension uses EG(vm_interrupt) to implement
  async dispatch.

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

<comment>See Also:</comment>
   * Zookeeper::addAuth
   * Zookeeper::connect
   * Zookeeper::__construct
   * Zookeeper::exists
   * Zookeeper::get
   * Zookeeper::getChildren
   * Zookeeper::setWatcher


