# php_manual

id: ssh2_sftp_mkdir
type: function
doc:
<comment>Description:</comment>
  Create a directory
  
  Creates a directory on the remote file server with permissions set to <strong>$mode</strong>.
  
  This function is similar to using <strong>mkdir()</strong> with the ssh2.sftp:// wrapper.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sftp</strong>       An SSH2 SFTP resource opened by <strong>ssh2_sftp()</strong>.
  <info>string</info>    <strong>$dirname</strong>    Path of the new directory.
  <info>int</info>       <strong>$mode</strong>       Permissions on the new directory. The actual mode is affected by the current
                        umask.
  <info>bool</info>      <strong>$recursive</strong>  If <strong>$recursive</strong> is <info>true</info> any parent directories required for <strong>$dirname</strong> will be
                        automatically created as well.

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

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


id: ssh2_sftp_readlink
type: function
doc:
<comment>Description:</comment>
  Return the target of a symbolic link
  
  Returns the target of a symbolic link.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sftp</strong>  An SSH2 SFTP resource opened by <strong>ssh2_sftp()</strong>.
  <info>string</info>    <strong>$link</strong>  Path of the symbolic link.

<comment>Return:</comment>
  <info>string</info>  Returns the target of the symbolic <strong>$link</strong>.

<comment>See Also:</comment>
   * <strong>readlink()</strong>
   * <strong>ssh2_sftp_symlink()</strong>


id: ssh2_sftp_realpath
type: function
doc:
<comment>Description:</comment>
  Resolve the realpath of a provided path string
  
  Translates <strong>$filename</strong> into the effective real path on the remote filesystem.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sftp</strong>      An SSH2 SFTP resource opened by <strong>ssh2_sftp()</strong>.
  <info>string</info>    <strong>$filename</strong>  

<comment>Return:</comment>
  <info>string</info>  Returns the real path as a string.

<comment>See Also:</comment>
   * <strong>realpath()</strong>
   * <strong>ssh2_sftp_symlink()</strong>
   * <strong>ssh2_sftp_readlink()</strong>


id: ssh2_sftp_rename
type: function
doc:
<comment>Description:</comment>
  Rename a remote file
  
  Renames a file on the remote filesystem.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sftp</strong>  An SSH2 SFTP resource opened by <strong>ssh2_sftp()</strong>.
  <info>string</info>    <strong>$from</strong>  The current file that is being renamed.
  <info>string</info>    <strong>$to</strong>    The new file name that replaces <strong>$from</strong>.

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

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


id: ssh2_sftp_rmdir
type: function
doc:
<comment>Description:</comment>
  Remove a directory
  
  Removes a directory from the remote file server.
  
  This function is similar to using <strong>rmdir()</strong> with the ssh2.sftp:// wrapper.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sftp</strong>     An SSH2 SFTP resource opened by <strong>ssh2_sftp()</strong>.
  <info>string</info>    <strong>$dirname</strong>  

<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>
   * <strong>ssh2_sftp_mkdir()</strong>


id: ssh2_sftp_stat
type: function
doc:
<comment>Description:</comment>
  Stat a file on a remote filesystem
  
  Stats a file on the remote filesystem following any symbolic links.
  
  This function is similar to using the <strong>stat()</strong> function with the ssh2.sftp:// wrapper and returns
  the same values.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sftp</strong>  An SSH2 SFTP resource opened by <strong>ssh2_sftp()</strong>.
  <info>string</info>    <strong>$path</strong>  

<comment>Return:</comment>
  <info>array</info>  See the documentation for <strong>stat()</strong> for details on the values which may be returned.

<comment>See Also:</comment>
   * <strong>ssh2_sftp_lstat()</strong>
   * <strong>lstat()</strong>
   * <strong>stat()</strong>


id: ssh2_sftp_symlink
type: function
doc:
<comment>Description:</comment>
  Create a symlink
  
  Creates a symbolic link named <strong>$link</strong> on the remote filesystem pointing to <strong>$target</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sftp</strong>    An SSH2 SFTP resource opened by <strong>ssh2_sftp()</strong>.
  <info>string</info>    <strong>$target</strong>  Target of the symbolic link.
  <info>string</info>    <strong>$link</strong>    

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

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


id: ssh2_sftp_unlink
type: function
doc:
<comment>Description:</comment>
  Delete a file
  
  Deletes a file on the remote filesystem.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sftp</strong>      An SSH2 SFTP resource opened by <strong>ssh2_sftp()</strong>.
  <info>string</info>    <strong>$filename</strong>  

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

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


id: ssh2_shell
type: function
doc:
<comment>Description:</comment>
  Request an interactive shell
  
  Open a shell at the remote end and allocate a stream for it.

<comment>Param:</comment>
  <info>resource</info>    <strong>$session</strong>            An SSH connection link identifier, obtained from a call to
                                  <strong>ssh2_connect()</strong>.
  <info>string</info>      <strong>$termtype</strong>           <strong>$termtype</strong> should correspond to one of the entries in the target
                                  system's <return>/etc/termcap</return> file.
  <info>array|null</info>  <strong>$env</strong>                <strong>$env</strong> may be passed as an associative array of name/value pairs to
                                  set in the target environment.
  <info>int</info>         <strong>$width</strong>              Width of the virtual terminal.
  <info>int</info>         <strong>$height</strong>             Height of the virtual terminal.
  <info>int</info>         <strong>$width_height_type</strong>  <strong>$width_height_type</strong> should be one of <info>SSH2_TERM_UNIT_CHARS</info> or
                                  <info>SSH2_TERM_UNIT_PIXELS</info>.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a stream resource on success,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ssh2_exec()</strong>
   * <strong>ssh2_tunnel()</strong>
   * <strong>ssh2_fetch_stream()</strong>


id: ssh2_tunnel
type: function
doc:
<comment>Description:</comment>
  Open a tunnel through a remote server
  
  Open a socket stream to an arbitrary host/port by way of the currently connected SSH server.

<comment>Param:</comment>
  <info>resource</info>  <strong>$session</strong>  An SSH connection link identifier, obtained from a call to <strong>ssh2_connect()</strong>.
  <info>string</info>    <strong>$host</strong>     
  <info>int</info>       <strong>$port</strong>     

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

<comment>See Also:</comment>
   * <strong>ssh2_connect()</strong>
   * <strong>fsockopen()</strong>


id: stat
type: function
doc:
<comment>Description:</comment>
  Gives information about a file
  
  Gathers the statistics of the file named by <strong>$filename</strong>.  If <strong>$filename</strong> is a symbolic link,
  statistics are from the file itself, not the symlink. Prior to PHP 7.4.0, on Windows NTS builds
  the <return>size</return>, <return>atime</return>, <return>mtime</return> and <return>ctime</return> statistics have been from the symlink, in this case.
  
  <strong>lstat()</strong> is identical to <strong>stat()</strong> except it would instead be based off the symlinks status.

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

<comment>Return:</comment>
  <info>array|false</info>  <strong>stat()</strong> and <strong>fstat()</strong> result formatNumericAssociativeDescription0devdevice number
               ***1inoinode number ****2modeinode protection mode *****3nlinknumber of
               links4uiduserid of owner *5gidgroupid of owner *6rdevdevice type, if inode
               device7sizesize in bytes8atimetime of last access (Unix timestamp)9mtimetime of last
               modification (Unix timestamp)10ctimetime of last inode change (Unix
               timestamp)11blksizeblocksize of filesystem IO **12blocksnumber of 512-byte blocks
               allocated **
               
               * On Windows this will always be <return>0</return>.
               
               ** Only valid on systems supporting the st_blksize type - other systems (e.g.
               Windows) return <return>-1</return>.
               
               *** On Windows, as of PHP 7.4.0, this is the serial number of the volume that
               contains the file, which is a 64-bit unsigned integer, so may overflow. Previously,
               it was the numeric representation of the drive letter (e.g. <return>2</return> for <return>C:</return>) for <strong>stat()</strong>, and
               <return>0</return> for <strong>lstat()</strong>.
               
               **** On Windows, as of PHP 7.4.0, this is the identifier associated with the file,
               which is a 64-bit unsigned integer, so may overflow. Previously, it was always <return>0</return>.
               
               ***** On Windows, the writable permission bit is set according to the read-only file
               attribute, and the same value is reported for all users, group and owner. The ACL is
               not taken into account, contrary to <strong>is_writable()</strong>.
               
               The value of <return>mode</return> contains information read by several functions.  When written in
               octal, starting from the right, the first three digits are returned by <strong>chmod()</strong>. The
               next digit is ignored by PHP. The next two digits indicate the file type: <return>mode</return> file
               types<return>mode</return> in octalMeaning<info>0140000</info>socket<info>0120000</info>link<info>0100000</info>regular file<info>0060000</info>block
               device<info>0040000</info>directory<info>0020000</info>character device<info>0010000</info>fifo So for example a regular
               file could be <info>0100644</info> and a directory could be <info>0040755</info>.
               
               In case of error, <strong>stat()</strong> returns <info>false</info>.
               
               Because PHP's integer type is signed and many platforms use 32bit integers, some
               filesystem functions may return unexpected results for files which are larger than
               2GB.

<comment>See Also:</comment>
   * <strong>lstat()</strong>
   * <strong>fstat()</strong>
   * <strong>filemtime()</strong>
   * <strong>filegroup()</strong>
   * <class>SplFileInfo</class>


id: stats_absolute_deviation
type: function
doc:
<comment>Description:</comment>
  Returns the absolute deviation of an array of values
  
  Returns the absolute deviation of the values in <strong>$a</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$a</strong>  The input array

<comment>Return:</comment>
  <info>float</info>  Returns the absolute deviation of the values in <strong>$a</strong>, or <info>false</info> if <strong>$a</strong> is empty or is not an
         array.


id: stats_cdf_beta
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the beta distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the beta
  distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are determined
  by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, alpha, and beta
  denotes cumulative distribution function, the value of the random variable, and shape parameters
  of the beta distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxalphabeta2xCDFalphabeta3alphaxCDFbeta4betaxCDFalpha

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, alpha, or beta, determined by <strong>$which</strong>.


id: stats_cdf_binomial
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the binomial distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  binomial distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are
  determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, n, and p denotes
  cumulative distribution function, the number of successes, the number of trials, and the success
  rate for each trial, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxnp2xCDFnp3nxCDFp4pxCDFn

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, n, or p, determined by <strong>$which</strong>.


id: stats_cdf_cauchy
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the Cauchy distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the Cauchy
  distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are determined
  by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, x0, and gamma denotes
  cumulative distribution function, the value of the random variable, the location and the scale
  parameter of the Cauchy distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxx0gamma2xCDFx0gamma3x0xCDFgamma4gammaxCDFx0

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, x0, or gamma, determined by <strong>$which</strong>.


id: stats_cdf_chisquare
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the chi-square distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  chi-square distribution. The kind of the return value and parameters (<strong>$par1</strong> and <strong>$par2</strong>) are
  determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, and k denotes
  cumulative distribution function, the value of the random variable, and the degree of freedom of
  the chi-square distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong>1CDFxk2xCDFk3kxCDF

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, or k, determined by <strong>$which</strong>.


id: stats_cdf_exponential
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the exponential distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  exponential distribution. The kind of the return value and parameters (<strong>$par1</strong> and <strong>$par2</strong>) are
  determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, and lambda denotes
  cumulative distribution function, the value of the random variable, and the rate parameter of the
  exponential distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong>1CDFxlambda2xCDFlambda3lambdaxCDF

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, or lambda, determined by <strong>$which</strong>.


id: stats_cdf_f
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the F distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the F
  distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are determined
  by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, d1, and d2 denotes
  cumulative distribution function, the value of the random variable, and the degree of freedoms of
  the F distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxd1d22xCDFd1d23d1xCDFd24d2xCDFd1

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, d1, or d2, determined by <strong>$which</strong>.


id: stats_cdf_gamma
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the gamma distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the gamma
  distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are determined
  by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, k, and theta denotes
  cumulative distribution function, the value of the random variable, and the shape and the scale
  parameter of the gamma distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxktheta2xCDFktheta3kxCDFtheta4thetaxCDFk

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, k, or theta, determined by <strong>$which</strong>.


id: stats_cdf_laplace
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the Laplace distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  Laplace distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are
  determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, mu, and b denotes
  cumulative distribution function, the value of the random variable, and the location and the scale
  parameter of the Laplace distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxmub2xCDFmub3muxCDFb4bxCDFmu

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, mu, or b, determined by <strong>$which</strong>.


id: stats_cdf_logistic
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the logistic distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  logistic distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are
  determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, mu, and s denotes
  cumulative distribution function, the value of the random variable, and the location and the scale
  parameter of the logistic distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxmus2xCDFmus3muxCDFs4sxCDFmu

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, mu, or s, determined by <strong>$which</strong>.


id: stats_cdf_negative_binomial
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the negative binomial distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  negative binomial distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and
  <strong>$par3</strong>) are determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, r, and p denotes
  cumulative distribution function, the number of failure, the number of success, and the success
  rate for each trial, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxrp2xCDFrp3rxCDFp4pxCDFr

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, r, or p, determined by <strong>$which</strong>.


id: stats_cdf_noncentral_chisquare
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the non-central chi-square distribution given values for the
  others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  non-central chi-square distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>,
  and <strong>$par3</strong>) are determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, k, and lambda denotes
  cumulative distribution function, the value of the random variable, the degree of freedom and the
  non-centrality parameter of the distribution, respectively. Return value and
  parameters<strong>$which</strong>Return value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxklambda2xCDFklambda3kxCDFlambda4lambdaxCDFk

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, k, or lambda, determined by <strong>$which</strong>.


id: stats_cdf_noncentral_f
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the non-central F distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  non-central F distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, <strong>$par3</strong>, and
  <strong>$par4</strong>) are determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, nu1, nu2, and lambda
  denotes cumulative distribution function, the value of the random variable, the degree of freedoms
  and the non-centrality parameter of the distribution, respectively. Return value and
  parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong><strong>$par4</strong>1CDFxnu1nu2lambda2xCDFnu1nu2lambda3nu1xCDFnu2lambda4nu2xCDFnu1lambda5lambdaxCDFnu1nu2

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>float</info>  <strong>$par4</strong>   The fourth parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, nu1, nu2, or lambda, determined by <strong>$which</strong>.


id: stats_cdf_noncentral_t
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the non-central t-distribution give values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  non-central t-distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>)
  are determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, nu, and mu denotes
  cumulative distribution function, the value of the random variable, the degrees of freedom and the
  non-centrality parameter of the distribution, respectively. Return value and
  parameters<strong>$which</strong>Return value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxnumu2xCDFnumu3nuxCDFmu4muxCDFnu

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, nu, or mu, determined by <strong>$which</strong>.


id: stats_cdf_normal
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the normal distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the normal
  distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are determined
  by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, mu, and sigma denotes
  cumulative distribution function, the value of the random variable, the mean and the standard
  deviation of the normal distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxmusigma2xCDFmusigma3muxCDFsigma4sigmaxCDFmu

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, mu, or sigma, determined by <strong>$which</strong>.


id: stats_cdf_poisson
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the Poisson distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  Poisson distribution. The kind of the return value and parameters (<strong>$par1</strong> and <strong>$par2</strong>) are determined
  by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, and lambda denotes
  cumulative distribution function, the value of the random variable, and the parameter of the
  Poisson distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong>1CDFxlambda2xCDFlambda3lambdaxCDF

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, or lambda, determined by <strong>$which</strong>.


id: stats_cdf_t
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the t-distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  t-distribution. The kind of the return value and parameters (<strong>$par1</strong> and <strong>$par2</strong>) are determined by
  <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, and nu denotes
  cumulative distribution function, the value of the random variable, and the degrees of freedom of
  the t-distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong>1CDFxnu2xCDFnu3nuxCDF

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, or nu, determined by <strong>$which</strong>.


id: stats_cdf_uniform
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the uniform distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  uniform distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are
  determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, a, and b denotes
  cumulative distribution function, the value of the random variable, the lower bound and the higher
  bound of the uniform distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxab2xCDFab3axCDFb4bxCDFa

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, a, or b, determined by <strong>$which</strong>.


id: stats_cdf_weibull
type: function
doc:
<comment>Description:</comment>
  Calculates any one parameter of the Weibull distribution given values for the others
  
  Returns the cumulative distribution function, its inverse, or one of its parameters, of the
  Weibull distribution. The kind of the return value and parameters (<strong>$par1</strong>, <strong>$par2</strong>, and <strong>$par3</strong>) are
  determined by <strong>$which</strong>.
  
  The following table lists the return value and parameters by <strong>$which</strong>. CDF, x, k, and lambda denotes
  cumulative distribution function, the value of the random variable, the shape and the scale
  parameter of the Weibull distribution, respectively. Return value and parameters<strong>$which</strong>Return
  value<strong>$par1</strong><strong>$par2</strong><strong>$par3</strong>1CDFxklambda2xCDFklambda3kxCDFlambda4lambdaxCDFk

<comment>Param:</comment>
  <info>float</info>  <strong>$par1</strong>   The first parameter
  <info>float</info>  <strong>$par2</strong>   The second parameter
  <info>float</info>  <strong>$par3</strong>   The third parameter
  <info>int</info>    <strong>$which</strong>  The flag to determine what to be calculated

<comment>Return:</comment>
  <info>float</info>  Returns CDF, x, k, or lambda, determined by <strong>$which</strong>.


id: stats_covariance
type: function
doc:
<comment>Description:</comment>
  Computes the covariance of two data sets
  
  Returns the covariance of <strong>$a</strong> and <strong>$b</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$a</strong>  The first array
  <info>array</info>  <strong>$b</strong>  The second array

<comment>Return:</comment>
  <info>float</info>  Returns the covariance of <strong>$a</strong> and <strong>$b</strong>, or <info>false</info> on failure.


id: stats_dens_beta
type: function
doc:
<comment>Description:</comment>
  Probability density function of the beta distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the beta distribution of
  which the shape parameters are <strong>$a</strong> and <strong>$b</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>  The value at which the probability density is calculated
  <info>float</info>  <strong>$a</strong>  The shape parameter of the distribution
  <info>float</info>  <strong>$b</strong>  The shape parameter of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_cauchy
type: function
doc:
<comment>Description:</comment>
  Probability density function of the Cauchy distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the Cauchy distribution
  whose location and scale are <strong>$ave</strong> and <strong>$stdev</strong>, respectively.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>      The value at which the probability density is calculated
  <info>float</info>  <strong>$ave</strong>    The location parameter of the distribution
  <info>float</info>  <strong>$stdev</strong>  The scale parameter of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_chisquare
type: function
doc:
<comment>Description:</comment>
  Probability density function of the chi-square distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the chi-square
  distribution of which the degree of freedom is <strong>$dfr</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>    The value at which the probability density is calculated
  <info>float</info>  <strong>$dfr</strong>  The degree of freedom of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_exponential
type: function
doc:
<comment>Description:</comment>
  Probability density function of the exponential distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the exponential
  distribution of which the scale is <strong>$scale</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>      The value at which the probability density is calculated
  <info>float</info>  <strong>$scale</strong>  The scale of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_f
type: function
doc:
<comment>Description:</comment>
  Probability density function of the F distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the F distribution of
  which the degree of freedoms are <strong>$dfr1</strong> and <strong>$dfr2</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>     The value at which the probability density is calculated
  <info>float</info>  <strong>$dfr1</strong>  The degree of freedom of the distribution
  <info>float</info>  <strong>$dfr2</strong>  The degree of freedom of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_gamma
type: function
doc:
<comment>Description:</comment>
  Probability density function of the gamma distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the gamma distribution of
  which the shape parameter is <strong>$shape</strong> and the scale parameter is <strong>$scale</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>      The value at which the probability density is calculated
  <info>float</info>  <strong>$shape</strong>  The shape parameter of the distribution
  <info>float</info>  <strong>$scale</strong>  The scale parameter of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_laplace
type: function
doc:
<comment>Description:</comment>
  Probability density function of the Laplace distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the Laplace distribution
  of which the location parameter is <strong>$ave</strong> and the scale parameter is <strong>$stdev</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>      The value at which the probability density is calculated
  <info>float</info>  <strong>$ave</strong>    The location parameter of the distribution
  <info>float</info>  <strong>$stdev</strong>  The shape parameter of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_logistic
type: function
doc:
<comment>Description:</comment>
  Probability density function of the logistic distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the logistic distribution
  of which the location parameter is <strong>$ave</strong> and the scale parameter is <strong>$stdev</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>      The value at which the probability density is calculated
  <info>float</info>  <strong>$ave</strong>    The location parameter of the distribution
  <info>float</info>  <strong>$stdev</strong>  The shape parameter of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_normal
type: function
doc:
<comment>Description:</comment>
  Probability density function of the normal distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the normal distribution
  of which the mean is <strong>$ave</strong> and the standard deviation is <strong>$stdev</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>      The value at which the probability density is calculated
  <info>float</info>  <strong>$ave</strong>    The mean of the distribution
  <info>float</info>  <strong>$stdev</strong>  The standard deviation of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_pmf_binomial
type: function
doc:
<comment>Description:</comment>
  Probability mass function of the binomial distribution
  
  Returns the probability mass at <strong>$x</strong>, where the random variable follows the binomial distribution of
  which the number of trials is <strong>$n</strong> and the success rate is <strong>$pi</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>   The value at which the probability mass is calculated
  <info>float</info>  <strong>$n</strong>   The number of trials of the distribution
  <info>float</info>  <strong>$pi</strong>  The success rate of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability mass at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_pmf_hypergeometric
type: function
doc:
<comment>Description:</comment>
  Probability mass function of the hypergeometric distribution
  
  Returns the probability mass at <strong>$n1</strong>, where the random variable follows the hypergeometric
  distribution of which the number of failure is <strong>$n2</strong>, the number of success samples is <strong>$N1</strong>, and the
  number of failure samples is <strong>$N2</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$n1</strong>  The number of success, at which the probability mass is calculated
  <info>float</info>  <strong>$n2</strong>  The number of failure of the distribution
  <info>float</info>  <strong>$N1</strong>  The number of success samples of the distribution
  <info>float</info>  <strong>$N2</strong>  The number of failure samples of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability mass at <strong>$n1</strong> or <info>false</info> for failure.


id: stats_dens_pmf_negative_binomial
type: function
doc:
<comment>Description:</comment>
  Probability mass function of the negative binomial distribution
  
  Returns the probability mass at <strong>$x</strong>, where the random variable follows the negative binomial
  distribution of which the number of the success is <strong>$n</strong> and the success rate is <strong>$pi</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>   The value at which the probability mass is calculated
  <info>float</info>  <strong>$n</strong>   The number of the success of the distribution
  <info>float</info>  <strong>$pi</strong>  The success rate of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability mass at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_pmf_poisson
type: function
doc:
<comment>Description:</comment>
  Probability mass function of the Poisson distribution
  
  Returns the probability mass at <strong>$x</strong>, where the random variable follows the Poisson distribution
  whose parameter is <strong>$lb</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>   The value at which the probability mass is calculated
  <info>float</info>  <strong>$lb</strong>  The parameter of the Poisson distribution

<comment>Return:</comment>
  <info>float</info>  The probability mass at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_t
type: function
doc:
<comment>Description:</comment>
  Probability density function of the t-distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the t-distribution of
  which the degree of freedom is <strong>$dfr</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>    The value at which the probability density is calculated
  <info>float</info>  <strong>$dfr</strong>  The degree of freedom of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_uniform
type: function
doc:
<comment>Description:</comment>
  Probability density function of the uniform distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the uniform distribution
  of which the lower bound is <strong>$a</strong> and the upper bound is <strong>$b</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>  The value at which the probability density is calculated
  <info>float</info>  <strong>$a</strong>  The lower bound of the distribution
  <info>float</info>  <strong>$b</strong>  The upper bound of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_dens_weibull
type: function
doc:
<comment>Description:</comment>
  Probability density function of the Weibull distribution
  
  Returns the probability density at <strong>$x</strong>, where the random variable follows the Weibull distribution
  of which the shape parameter is <strong>$a</strong> and the scale parameter is <strong>$b</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>  The value at which the probability density is calculated
  <info>float</info>  <strong>$a</strong>  The shape parameter of the distribution
  <info>float</info>  <strong>$b</strong>  The scale parameter of the distribution

<comment>Return:</comment>
  <info>float</info>  The probability density at <strong>$x</strong> or <info>false</info> for failure.


id: stats_harmonic_mean
type: function
doc:
<comment>Description:</comment>
  Returns the harmonic mean of an array of values
  
  Returns the harmonic mean of the values in <strong>$a</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$a</strong>  The input array

<comment>Return:</comment>
  <info>number</info>  Returns the harmonic mean of the values in <strong>$a</strong>, or <info>false</info> if <strong>$a</strong> is empty or is not an array.


id: stats_kurtosis
type: function
doc:
<comment>Description:</comment>
  Computes the kurtosis of the data in the array
  
  Returns the kurtosis of the values in <strong>$a</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$a</strong>  The input array

<comment>Return:</comment>
  <info>float</info>  Returns the kurtosis of the values in <strong>$a</strong>, or <info>false</info> if <strong>$a</strong> is empty or is not an array.


id: stats_rand_gen_beta
type: function
doc:
<comment>Description:</comment>
  Generates a random deviate from the beta distribution
  
  Returns a random deviate from the beta distribution with parameters A and B. The density of the
  beta is x^(a-1) * (1-x)^(b-1) / B(a,b) for 0 \< x \<. Method R. C. H. Cheng.

<comment>Param:</comment>
  <info>float</info>  <strong>$a</strong>  The shape parameter of the beta distribution
  <info>float</info>  <strong>$b</strong>  The shape parameter of the beta distribution

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_chisquare
type: function
doc:
<comment>Description:</comment>
  Generates a random deviate from the chi-square distribution
  
  Returns a random deviate from the chi-square distribution where the degrees of freedom is  <strong>$df</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$df</strong>  The degrees of freedom

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_exponential
type: function
doc:
<comment>Description:</comment>
  Generates a random deviate from the exponential distribution
  
  Returns a random deviate from the exponential distribution of which the scale is <strong>$av</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$av</strong>  The scale parameter

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_f
type: function
doc:
<comment>Description:</comment>
  Generates a random deviate from the F distribution
  
  Generates a random deviate from the F (variance ratio) distribution with  "dfn" degrees of freedom
  in the numerator and "dfd" degrees of freedom in  the denominator. Method : directly generates
  ratio of chisquare variates.

<comment>Param:</comment>
  <info>float</info>  <strong>$dfn</strong>  The degrees of freedom in the numerator
  <info>float</info>  <strong>$dfd</strong>  The degrees of freedom in the denominator

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_funiform
type: function
doc:
<comment>Description:</comment>
  Generates uniform float between low (exclusive) and high (exclusive)
  
  Returns a random deviate from the uniform distribution from <strong>$low</strong> to <strong>$high</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$low</strong>   The lower bound (inclusive)
  <info>float</info>  <strong>$high</strong>  The upper bound (exclusive)

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_gamma
type: function
doc:
<comment>Description:</comment>
  Generates a random deviate from the gamma distribution
  
  Generates a random deviate from the gamma distribution whose density is (A**R)/Gamma(R) * X**(R-1)
  * Exp(-A*X).

<comment>Param:</comment>
  <info>float</info>  <strong>$a</strong>  location parameter of Gamma distribution (<strong>$a</strong> &gt; 0).
  <info>float</info>  <strong>$r</strong>  shape parameter of Gamma distribution (<strong>$r</strong> &gt; 0).

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_ibinomial
type: function
doc:
<comment>Description:</comment>
  Generates a random deviate from the binomial distribution
  
  Returns a random deviate from the binomial distribution whose number of trials is <strong>$n</strong> and whose
  probability of an event in each trial is <strong>$pp</strong>.

<comment>Param:</comment>
  <info>int</info>    <strong>$n</strong>   The number of trials
  <info>float</info>  <strong>$pp</strong>  The probability of an event in each trial

<comment>Return:</comment>
  <info>int</info>  A random deviate


id: stats_rand_gen_ibinomial_negative
type: function
doc:
<comment>Description:</comment>
  Generates a random deviate from the negative binomial distribution
  
  Returns a random deviate from a negative binomial distribution where the number of success is <strong>$n</strong>
  and the success rate is <strong>$p</strong>.

<comment>Param:</comment>
  <info>int</info>    <strong>$n</strong>  The number of success
  <info>float</info>  <strong>$p</strong>  The success rate

<comment>Return:</comment>
  <info>int</info>  A random deviate, which is the number of failure.


id: stats_rand_gen_int
type: function
doc:
<comment>Description:</comment>
  Generates random integer between 1 and 2147483562
  
  Returns a random integer between 1 and 2147483562

<comment>Return:</comment>
  <info>int</info>  A random integer


id: stats_rand_gen_ipoisson
type: function
doc:
<comment>Description:</comment>
  Generates a single random deviate from a Poisson distribution
  
  Returns a random deviate from the Poisson distribution with parameter <strong>$mu</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$mu</strong>  The parameter of the Poisson distribution

<comment>Return:</comment>
  <info>int</info>  A random deviate


id: stats_rand_gen_iuniform
type: function
doc:
<comment>Description:</comment>
  Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
  
  Returns a random integer from the discrete uniform distribution between <strong>$low</strong> (inclusive) and <strong>$high</strong>
  (inclusive).

<comment>Param:</comment>
  <info>int</info>  <strong>$low</strong>   The lower bound
  <info>int</info>  <strong>$high</strong>  The upper bound

<comment>Return:</comment>
  <info>int</info>  A random integer


id: stats_rand_gen_noncentral_chisquare
type: function
doc:
<comment>Description:</comment>
  Generates a random deviate from the non-central chi-square distribution
  
  Returns a random deviate from the non-central chi-square distribution with degrees of freedom,
  <strong>$df</strong>, and non-centrality parameter, <strong>$xnonc</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$df</strong>     The degrees of freedom
  <info>float</info>  <strong>$xnonc</strong>  The non-centrality parameter

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_noncentral_f
type: function
doc:
<comment>Description:</comment>
  Generates a random deviate from the noncentral F distribution
  
  Returns a random deviate from the non-central F distribution where the degrees of freedoms are
  <strong>$dfn</strong> (numerator) and <strong>$dfd</strong> (denominator), and the non-centrality parameter is <strong>$xnonc</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$dfn</strong>    The degrees of freedom of the numerator
  <info>float</info>  <strong>$dfd</strong>    The degrees of freedom of the denominator
  <info>float</info>  <strong>$xnonc</strong>  The non-centrality parameter

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_noncentral_t
type: function
doc:
<comment>Description:</comment>
  Generates a single random deviate from a non-central t-distribution
  
  Returns a random deviate from the non-central t-distribution with the degrees of freedom, <strong>$df</strong>, and
  the non-centrality parameter, <strong>$xnonc</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$df</strong>     The degrees of freedom
  <info>float</info>  <strong>$xnonc</strong>  The non-centrality parameter

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_normal
type: function
doc:
<comment>Description:</comment>
  Generates a single random deviate from a normal distribution
  
  Returns a random deviate from the normal distribution with mean, <strong>$av</strong>, and standard deviation, <strong>$sd</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$av</strong>  The mean of the normal distribution
  <info>float</info>  <strong>$sd</strong>  The standard deviation of the normal distribution

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_gen_t
type: function
doc:
<comment>Description:</comment>
  Generates a single random deviate from a t-distribution
  
  Returns a random deviate from the t-distribution with the degrees of freedom, <strong>$df</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$df</strong>  The degrees of freedom

<comment>Return:</comment>
  <info>float</info>  A random deviate


id: stats_rand_get_seeds
type: function
doc:
<comment>Description:</comment>
  Get the seed values of the random number generator
  
  Returns the current seed values of the random number generator

<comment>Return:</comment>
  <info>array</info>  Returns an array of two integers.


id: stats_rand_phrase_to_seeds
type: function
doc:
<comment>Description:</comment>
  Generate two seeds for the RGN random number generator
  
  Generate two seeds for the random number generator from a <strong>$phrase</strong>.

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

<comment>Return:</comment>
  <info>array</info>  Returns an array of two integers.


id: stats_rand_ranf
type: function
doc:
<comment>Description:</comment>
  Generates a random floating point number between 0 and 1
  
  Returns a random floating point number from a uniform distribution between 0 (exclusive) and  1
  (exclusive).

<comment>Return:</comment>
  <info>float</info>  A random floating point number


id: stats_rand_setall
type: function
doc:
<comment>Description:</comment>
  Set seed values to the random generator
  
  Set <strong>$iseed1</strong> and <strong>$iseed2</strong> as seed values to the random generator used in statistic functions.

<comment>Param:</comment>
  <info>int</info>  <strong>$iseed1</strong>  The value which is used as the random seed
  <info>int</info>  <strong>$iseed2</strong>  The value which is used as the random seed

<comment>Return:</comment>
  <info>void</info>  No values are returned.


id: stats_skew
type: function
doc:
<comment>Description:</comment>
  Computes the skewness of the data in the array
  
  Returns the skewness of the values in <strong>$a</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$a</strong>  The input array

<comment>Return:</comment>
  <info>float</info>  Returns the skewness of the values in <strong>$a</strong>, or <info>false</info> if <strong>$a</strong> is empty or is not an array.


id: stats_standard_deviation
type: function
doc:
<comment>Description:</comment>
  Returns the standard deviation
  
  Returns the standard deviation of the values in <strong>$a</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$a</strong>       The array of data to find the standard deviation for. Note that all  values of the
                  array will be cast to <info>float</info>.
  <info>bool</info>   <strong>$sample</strong>  Indicates if <strong>$a</strong> represents a sample of the  population; defaults to <info>false</info>.

<comment>Return:</comment>
  <info>float</info>  Returns the standard deviation on success; <info>false</info> on failure.


id: stats_stat_binomial_coef
type: function
doc:
<comment>Description:</comment>
  Returns a binomial coefficient
  
  Returns the binomial coefficient of <strong>$n</strong> choose <strong>$x</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$x</strong>  The number of chooses from the set
  <info>int</info>  <strong>$n</strong>  The number of elements in the set

<comment>Return:</comment>
  <info>float</info>  Returns the binomial coefficient


id: stats_stat_correlation
type: function
doc:
<comment>Description:</comment>
  Returns the Pearson correlation coefficient of two data sets
  
  Returns the Pearson correlation coefficient between <strong>$arr1</strong> and <strong>$arr2</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$arr1</strong>  The first array
  <info>array</info>  <strong>$arr2</strong>  The second array

<comment>Return:</comment>
  <info>float</info>  Returns the Pearson correlation coefficient between <strong>$arr1</strong> and <strong>$arr2</strong>, or <info>false</info> on failure.


id: stats_stat_factorial
type: function
doc:
<comment>Description:</comment>
  Returns the factorial of an integer
  
  Returns the factorial of an integer, <strong>$n</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$n</strong>  An integer

<comment>Return:</comment>
  <info>float</info>  The factorial of <strong>$n</strong>.


id: stats_stat_independent_t
type: function
doc:
<comment>Description:</comment>
  Returns the t-value from the independent two-sample t-test
  
  Returns the t-value of the independent two-sample t-test between <strong>$arr1</strong> and <strong>$arr2</strong>.
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>array</info>  <strong>$arr1</strong>  The first set of values
  <info>array</info>  <strong>$arr2</strong>  The second set of values

<comment>Return:</comment>
  <info>float</info>  Returns the t-value, or <info>false</info> if failure.


id: stats_stat_innerproduct
type: function
doc:
<comment>Description:</comment>
  Returns the inner product of two vectors
  
  Returns the inner product of <strong>$arr1</strong> and <strong>$arr2</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$arr1</strong>  The first array
  <info>array</info>  <strong>$arr2</strong>  The second array

<comment>Return:</comment>
  <info>float</info>  Returns the inner product of <strong>$arr1</strong> and <strong>$arr2</strong>, or <info>false</info> on failure.


id: stats_stat_paired_t
type: function
doc:
<comment>Description:</comment>
  Returns the t-value of the dependent t-test for paired samples
  
  Returns the t-value of the dependent t-test for paired samples <strong>$arr1</strong> and <strong>$arr2</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$arr1</strong>  The first samples
  <info>array</info>  <strong>$arr2</strong>  The second samples

<comment>Return:</comment>
  <info>float</info>  Returns the t-value, or <info>false</info> if failure.


id: stats_stat_percentile
type: function
doc:
<comment>Description:</comment>
  Returns the percentile value
  
  Returns the <strong>$perc</strong>-th percentile value of the array <strong>$arr</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$arr</strong>   The input array
  <info>float</info>  <strong>$perc</strong>  The percentile

<comment>Return:</comment>
  <info>float</info>  Returns the percentile values of the input array.


id: stats_stat_powersum
type: function
doc:
<comment>Description:</comment>
  Returns the power sum of a vector
  
  Returns the sum of the <strong>$power</strong>-th power of a vector represented as an array <strong>$arr</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$arr</strong>    The input array
  <info>float</info>  <strong>$power</strong>  The power

<comment>Return:</comment>
  <info>float</info>  Returns the power sum of the input array.


id: stats_variance
type: function
doc:
<comment>Description:</comment>
  Returns the variance
  
  Returns the variance of the values in <strong>$a</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$a</strong>       The array of data to find the standard deviation for. Note that all  values of the
                  array will be cast to <info>float</info>.
  <info>bool</info>   <strong>$sample</strong>  Indicates if <strong>$a</strong> represents a sample of the  population; defaults to <info>false</info>.

<comment>Return:</comment>
  <info>float</info>  Returns the variance on success; <info>false</info> on failure.


id: stdClass
type: class
doc:
<comment>Description:</comment>
  A generic empty class with dynamic properties.
  
  Objects of this class can be instantiated with new operator or created by typecasting to object.
  Several PHP functions also create instances of this class, e.g. <strong>json_decode()</strong>,
  <strong>mysqli_fetch_object()</strong> or PDOStatement::fetchObject.
  
  Despite not implementing __get()/__set() magic methods, this class allows dynamic properties and
  does not require the #[\AllowDynamicProperties] attribute.
  
  This is not a base class as PHP does not have a concept of a universal base class. However, it is
  possible to create a custom class that extends from <class>stdClass</class> and as a result inherits the
  functionality of dynamic properties.


id: stomp_connect_error
type: function
doc:
<comment>Description:</comment>
  Returns a string description of the last connect error
  
  Returns a string description of the last connect error.

<comment>Return:</comment>
  <info>string</info>  A string that describes the error, or <info>null</info> if no error occurred.


id: stomp_version
type: function
doc:
<comment>Description:</comment>
  Gets the current stomp extension version
  
  Returns a string containing the version of the current stomp extension.

<comment>Return:</comment>
  <info>string</info>  It returns the current stomp extension version


id: str_contains
type: function
doc:
<comment>Description:</comment>
  Determine if a string contains a given substring
  
  Performs a case-sensitive check indicating if <strong>$needle</strong> is contained in <strong>$haystack</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>  The string to search in.
  <info>string</info>  <strong>$needle</strong>    The substring to search for in the <strong>$haystack</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$needle</strong> is in <strong>$haystack</strong>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>str_ends_with()</strong>
   * <strong>str_starts_with()</strong>
   * <strong>stripos()</strong>
   * <strong>strrpos()</strong>
   * <strong>strripos()</strong>
   * <strong>strstr()</strong>
   * <strong>strpbrk()</strong>
   * <strong>substr()</strong>
   * <strong>preg_match()</strong>


id: str_decrement
type: function
doc:
<comment>Description:</comment>
  Decrement an alphanumeric string
  
  Returns the decremented alphanumeric ASCII <strong>$string</strong>.

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

<comment>Return:</comment>
  <info>string</info>  Returns the decremented alphanumeric ASCII string.

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


id: str_ends_with
type: function
doc:
<comment>Description:</comment>
  Checks if a string ends with a given substring
  
  Performs a case-sensitive check indicating if <strong>$haystack</strong> ends with <strong>$needle</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>  The string to search in.
  <info>string</info>  <strong>$needle</strong>    The substring to search for in the <strong>$haystack</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$haystack</strong> ends with <strong>$needle</strong>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>str_contains()</strong>
   * <strong>str_starts_with()</strong>
   * <strong>stripos()</strong>
   * <strong>strrpos()</strong>
   * <strong>strripos()</strong>
   * <strong>strstr()</strong>
   * <strong>strpbrk()</strong>
   * <strong>substr()</strong>
   * <strong>preg_match()</strong>


id: str_getcsv
type: function
doc:
<comment>Description:</comment>
  Parse a CSV string into an array
    
  
  Parses a string input for fields in CSV format and returns an array containing the fields read.
  
  The locale settings are taken into account by this function. If <return>LC_CTYPE</return> is e.g. <return>en_US.UTF-8</return>,
  strings in one-byte encodings may be read wrongly by this function.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>     The string to parse.
  <info>string</info>  <strong>$separator</strong>  Set the field delimiter (one single-byte character only).
  <info>string</info>  <strong>$enclosure</strong>  Set the field enclosure character (one single-byte character only).
  <info>string</info>  <strong>$escape</strong>     Set the escape character (at most one single-byte character). Defaults as a
                      backslash (<return>\</return>) An empty string (<return>""</return>) disables the proprietary escape mechanism.
                      
                      Usually an <strong>$enclosure</strong> character is escaped inside a field by doubling it;
                      however, the <strong>$escape</strong> character can be used as an alternative. So for the
                      default parameter values <return>""</return> and <return>\"</return> have the same meaning. Other than allowing
                      to escape the <strong>$enclosure</strong> character the <strong>$escape</strong> character has no special
                      meaning; it isn't even meant to escape itself.

<comment>Return:</comment>
  <info>array</info>  Returns an indexed array containing the fields read.

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


id: str_increment
type: function
doc:
<comment>Description:</comment>
  Increment an alphanumeric string
  
  Returns the incremented alphanumeric ASCII <strong>$string</strong>.

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

<comment>Return:</comment>
  <info>string</info>  Returns the incremented alphanumeric ASCII string.

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


id: str_ireplace
type: function
doc:
<comment>Description:</comment>
  Case-insensitive version of str_replace
  
  This function returns a string or an array with all occurrences of <strong>$search</strong> in <strong>$subject</strong> (ignoring
  case) replaced with the given <strong>$replace</strong> value.
  
  To replace text based on a pattern rather than a fixed string, use <strong>preg_replace()</strong> with the <return>i</return>
  pattern modifier.

<comment>Param:</comment>
  <info>array|string</info>  <strong>$search</strong>   The value being searched for, otherwise known as the needle.  An array may
                          be used to designate multiple needles.
  <info>array|string</info>  <strong>$replace</strong>  The replacement value that replaces found <strong>$search</strong> values. An array may be
                          used to designate multiple replacements.
  <info>string|array</info>  <strong>$subject</strong>  The string or array being searched and replaced on, otherwise known as the
                          haystack.
                          
                          If <strong>$subject</strong> is an array, then the search and replace is performed with
                          every entry of  <strong>$subject</strong>, and the return value is an array as well.
  <info>int</info>           <strong>$count</strong>    If passed, this will be set to the number of replacements performed.

<comment>Return:</comment>
  <info>string|array</info>  Returns a string or an array of replacements.

<comment>See Also:</comment>
   * <strong>str_replace()</strong>
   * <strong>preg_replace()</strong>
   * <strong>strtr()</strong>


id: str_pad
type: function
doc:
<comment>Description:</comment>
  Pad a string to a certain length with another string
  
  This function returns the <strong>$string</strong> string padded on the left, the right, or both sides to the
  specified padding length. If the optional argument <strong>$pad_string</strong> is not supplied, the <strong>$string</strong> is
  padded with spaces, otherwise it is padded with characters from <strong>$pad_string</strong> up to the limit.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      The input string.
  <info>int</info>     <strong>$length</strong>      The desired length of the final padded string. If the value of <strong>$length</strong> is
                       negative, less than, or equal to the length of the input string, no padding
                       takes place, and <strong>$string</strong> will be returned.
  <info>string</info>  <strong>$pad_string</strong>  The <strong>$pad_string</strong> may be truncated if the required number of padding characters
                       can't be evenly divided by the <strong>$pad_string</strong>'s length.
  <info>int</info>     <strong>$pad_type</strong>    Optional argument <strong>$pad_type</strong> can be <info>STR_PAD_RIGHT</info>, <info>STR_PAD_LEFT</info>, or
                       <info>STR_PAD_BOTH</info>. If <strong>$pad_type</strong> is not specified it is assumed to be
                       <info>STR_PAD_RIGHT</info>.

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

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


id: str_repeat
type: function
doc:
<comment>Description:</comment>
  Repeat a string
  
  Returns <strong>$string</strong> repeated <strong>$times</strong> times.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The string to be repeated.
  <info>int</info>     <strong>$times</strong>   Number of time the <strong>$string</strong> string should be repeated.
                   
                   <strong>$times</strong> has to be greater than or equal to 0. If the <strong>$times</strong> is set to 0, the
                   function will return an empty string.

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

<comment>See Also:</comment>
   * for
   * <strong>str_pad()</strong>
   * <strong>substr_count()</strong>


id: str_replace
type: function
doc:
<comment>Description:</comment>
  Replace all occurrences of the search string with the replacement string
  
  This function returns a string or an array with all occurrences of <strong>$search</strong> in <strong>$subject</strong> replaced
  with the given <strong>$replace</strong> value.
  
  To replace text based on a pattern rather than a fixed string, use <strong>preg_replace()</strong>.

<comment>Param:</comment>
  <info>array|string</info>  <strong>$search</strong>   The value being searched for, otherwise known as the needle. An array may
                          be used to designate multiple needles.
  <info>array|string</info>  <strong>$replace</strong>  The replacement value that replaces found <strong>$search</strong> values. An array may be
                          used to designate multiple replacements.
  <info>string|array</info>  <strong>$subject</strong>  The string or array being searched and replaced on, otherwise known as the
                          haystack.
                          
                          If <strong>$subject</strong> is an array, then the search and replace is performed with
                          every entry of <strong>$subject</strong>, and the return value is an array as well.
  <info>int</info>           <strong>$count</strong>    If passed, this will be set to the number of replacements performed.

<comment>Return:</comment>
  <info>string|array</info>  This function returns a string or an array with the replaced values.

<comment>See Also:</comment>
   * <strong>str_ireplace()</strong>
   * <strong>substr_replace()</strong>
   * <strong>preg_replace()</strong>
   * <strong>strtr()</strong>


id: str_rot13
type: function
doc:
<comment>Description:</comment>
  Perform the rot13 transform on a string
  
  Performs the ROT13 encoding on the <strong>$string</strong> argument and returns the resulting string.
  
  The ROT13 encoding simply shifts every letter by 13 places in the alphabet while leaving non-alpha
  characters untouched. Encoding and decoding are done by the same function, passing an encoded
  string as argument will return the original version.

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

<comment>Return:</comment>
  <info>string</info>  Returns the ROT13 version of the given string.


id: str_shuffle
type: function
doc:
<comment>Description:</comment>
  Randomly shuffles a string
  
  <strong>str_shuffle()</strong> shuffles a string.  One permutation of all possible is created.
  
  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.

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

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

<comment>See Also:</comment>
   * <strong>Random\Randomizer::shuffleBytes()</strong>
   * <strong>Random\Randomizer::shuffleArray()</strong>


id: str_split
type: function
doc:
<comment>Description:</comment>
  Convert a string to an array
  
  Converts a string to an array.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The input string.
  <info>int</info>     <strong>$length</strong>  Maximum length of the chunk.

<comment>Return:</comment>
  <info>array</info>  If the optional <strong>$length</strong> parameter is specified, the returned array will be broken down into
         chunks with each being <strong>$length</strong> in length, except the final chunk which may be shorter if
         the string does not divide evenly.  The default <strong>$length</strong> is <return>1</return>, meaning every chunk will be
         one byte in size.

<comment>See Also:</comment>
   * <strong>mb_str_split()</strong>
   * <strong>chunk_split()</strong>
   * <strong>preg_split()</strong>
   * <strong>explode()</strong>
   * <strong>count_chars()</strong>
   * <strong>str_word_count()</strong>
   * for


id: str_starts_with
type: function
doc:
<comment>Description:</comment>
  Checks if a string starts with a given substring
  
  Performs a case-sensitive check indicating if <strong>$haystack</strong> begins with <strong>$needle</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>  The string to search in.
  <info>string</info>  <strong>$needle</strong>    The substring to search for in the <strong>$haystack</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$haystack</strong> begins with <strong>$needle</strong>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>str_contains()</strong>
   * <strong>str_ends_with()</strong>
   * <strong>stripos()</strong>
   * <strong>strrpos()</strong>
   * <strong>strripos()</strong>
   * <strong>strstr()</strong>
   * <strong>strpbrk()</strong>
   * <strong>substr()</strong>
   * <strong>preg_match()</strong>


id: str_word_count
type: function
doc:
<comment>Description:</comment>
  Return information about words used in a string
    
  
  Counts the number of words inside <strong>$string</strong>.  If the optional <strong>$format</strong> is not specified, then  the
  return value will be an integer representing the number of words  found. In the event the <strong>$format</strong>
  is specified, the return value will be an array, content of which is dependent on the  <strong>$format</strong>.
  The possible value for the  <strong>$format</strong> and the resultant outputs are listed below.
  
  For the purpose of this function, 'word' is defined as a locale dependent string containing
  alphabetic characters, which also may contain, but not start with "'" and "-" characters. Note
  that multibyte locales are not supported.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>      The string
  <info>int</info>          <strong>$format</strong>      Specify the return value of this function. The current supported values
                            are:  0 - returns the number of words found  1 - returns an array
                            containing all the words found inside the <strong>$string</strong>  2 - returns an
                            associative array, where the key is the numeric position of the word
                            inside the <strong>$string</strong> and the value is the actual word itself
                            
                            0 - returns the number of words found
                            
                            1 - returns an array containing all the words found inside the <strong>$string</strong>
                            
                            2 - returns an associative array, where the key is the numeric position
                            of the word inside the <strong>$string</strong> and the value is the actual word itself
  <info>string|null</info>  <strong>$characters</strong>  A list of additional characters which will be considered as 'word'

<comment>Return:</comment>
  <info>array|int</info>  Returns an array or an integer, depending on the <strong>$format</strong> chosen.

<comment>See Also:</comment>
   * <strong>explode()</strong>
   * <strong>preg_split()</strong>
   * <strong>count_chars()</strong>
   * <strong>substr_count()</strong>


id: strcasecmp
type: function
doc:
<comment>Description:</comment>
  Binary safe case-insensitive string comparison
  
  Binary safe case-insensitive string comparison. The comparison is not locale aware; only ASCII
  letters are compared in a case-insensitive way.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  The first string
  <info>string</info>  <strong>$string2</strong>  The second string

<comment>Return:</comment>
  <info>int</info>  Returns <return>-1</return> if <strong>$string1</strong> is less than <strong>$string2</strong>; <return>1</return> if <strong>$string1</strong> is greater than <strong>$string2</strong>, and <return>0</return>
       if they are equal.

<comment>See Also:</comment>
   * <strong>strcmp()</strong>
   * <strong>preg_match()</strong>
   * <strong>substr_compare()</strong>
   * <strong>strncasecmp()</strong>
   * <strong>stristr()</strong>
   * <strong>substr()</strong>


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


id: strcmp
type: function
doc:
<comment>Description:</comment>
  Binary safe string comparison
  
  Note that this comparison is case sensitive.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  The first string.
  <info>string</info>  <strong>$string2</strong>  The second string.

<comment>Return:</comment>
  <info>int</info>  Returns <return>-1</return> if <strong>$string1</strong> is less than <strong>$string2</strong>; <return>1</return> if <strong>$string1</strong> is greater than <strong>$string2</strong>, and <return>0</return>
       if they are equal.

<comment>See Also:</comment>
   * <strong>strcasecmp()</strong>
   * <strong>preg_match()</strong>
   * <strong>substr_compare()</strong>
   * <strong>strncmp()</strong>
   * <strong>strstr()</strong>
   * <strong>substr()</strong>


id: strcoll
type: function
doc:
<comment>Description:</comment>
  Locale based string comparison
  
  Note that this comparison is case sensitive, and unlike <strong>strcmp()</strong> this function is not binary safe.
  
  <strong>strcoll()</strong> uses the current locale for doing the comparisons.  If the current locale is C or POSIX,
  this function is equivalent to <strong>strcmp()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  The first string.
  <info>string</info>  <strong>$string2</strong>  The second string.

<comment>Return:</comment>
  <info>int</info>  Returns \< 0 if <strong>$string1</strong> is less than <strong>$string2</strong>; &gt; 0 if <strong>$string1</strong> is greater than <strong>$string2</strong>,
       and 0 if they are equal.

<comment>See Also:</comment>
   * <strong>preg_match()</strong>
   * <strong>strcmp()</strong>
   * <strong>strcasecmp()</strong>
   * <strong>substr()</strong>
   * <strong>stristr()</strong>
   * <strong>strncasecmp()</strong>
   * <strong>strncmp()</strong>
   * <strong>strstr()</strong>
   * <strong>setlocale()</strong>


id: strcspn
type: function
doc:
<comment>Description:</comment>
  Find length of initial segment not matching mask
  
  Returns the length of the initial segment of <strong>$string</strong> which does not contain any of the characters
  in <strong>$characters</strong>.
  
  If <strong>$offset</strong> and <strong>$length</strong> are omitted, then all of <strong>$string</strong> will be examined. If they are included,
  then the effect will be the same as calling <return>strcspn(substr($string, $offset, $length),
  $characters)</return> (see  for more information).

<comment>Param:</comment>
  <info>string</info>    <strong>$string</strong>      The string to examine.
  <info>string</info>    <strong>$characters</strong>  The string containing every disallowed character.
  <info>int</info>       <strong>$offset</strong>      The position in <strong>$string</strong> to start searching.
                         
                         If <strong>$offset</strong> is given and is non-negative, then <strong>strcspn()</strong> will begin
                         examining <strong>$string</strong> at the <strong>$offset</strong>'th position. For instance, in the string
                         '<return>abcdef</return>', the character at position <return>0</return> is '<return>a</return>', the character at position <return>2</return>
                         is '<return>c</return>', and so forth.
                         
                         If <strong>$offset</strong> is given and is negative, then <strong>strcspn()</strong> will begin examining
                         <strong>$string</strong> at the <strong>$offset</strong>'th position from the end of <strong>$string</strong>.
  <info>int|null</info>  <strong>$length</strong>      The length of the segment from <strong>$string</strong> to examine.
                         
                         If <strong>$length</strong> is given and is non-negative, then <strong>$string</strong> will be examined for
                         <strong>$length</strong> characters after the starting position.
                         
                         If <strong>$length</strong> is given and is negative, then <strong>$string</strong> will be examined from the
                         starting position up to <strong>$length</strong> characters from the end of <strong>$string</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the length of the initial segment of <strong>$string</strong> which consists entirely of characters
       not in <strong>$characters</strong>.
       
       When a <strong>$offset</strong> parameter is set, the returned length is counted starting from this position,
       not from the beginning of <strong>$string</strong>.

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


id: streamWrapper
type: class
doc:
<comment>Description:</comment>
  Allows you to implement your own protocol handlers and streams for use with all the other
  filesystem functions (such as <strong>fopen()</strong>, <strong>fread()</strong> etc.).
  
  This is NOT a real class, only a prototype of how a class defining its own protocol should be.
  
  Implementing the methods in other ways than described here can lead to undefined behaviour.
  
  An instance of this class is initialized as soon as a stream function tries to access the protocol
  it is associated with.


id: streamWrapper::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new stream wrapper
  
  Called when opening the stream wrapper, right before streamWrapper::stream_open.


id: streamWrapper::__destruct
type: function
doc:
<comment>Description:</comment>
  Destructs an existing stream wrapper
  
  Called when closing the stream wrapper, right before streamWrapper::stream_flush.


id: streamWrapper::dir_closedir
type: function
doc:
<comment>Description:</comment>
  Close directory handle
  
  This method is called in response to <strong>closedir()</strong>.
  
  Any resources which were locked, or allocated, during opening and use of the directory stream
  should be released.

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

<comment>See Also:</comment>
   * <strong>closedir()</strong>
   * streamWrapper::dir_opendir


id: streamWrapper::dir_opendir
type: function
doc:
<comment>Description:</comment>
  Open directory handle
  
  This method is called in response to <strong>opendir()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>     Specifies the URL that was passed to <strong>opendir()</strong>.
                    
                    The URL can be broken apart with <strong>parse_url()</strong>.
  <info>int</info>     <strong>$options</strong>  

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

<comment>See Also:</comment>
   * <strong>opendir()</strong>
   * streamWrapper::dir_closedir
   * <strong>parse_url()</strong>


id: streamWrapper::dir_readdir
type: function
doc:
<comment>Description:</comment>
  Read entry from directory handle
  
  This method is called in response to <strong>readdir()</strong>.

<comment>Return:</comment>
  <info>string</info>  Should return <info>string</info> representing the next filename, or <info>false</info> if there is no next file.
          
          The return value will be casted to <info>string</info>.

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


id: streamWrapper::dir_rewinddir
type: function
doc:
<comment>Description:</comment>
  Rewind directory handle
  
  This method is called in response to <strong>rewinddir()</strong>.
  
  Should reset the output generated by streamWrapper::dir_readdir. i.e.: The next call to
  streamWrapper::dir_readdir should return the first entry in the location returned by
  streamWrapper::dir_opendir.

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

<comment>See Also:</comment>
   * <strong>rewinddir()</strong>
   * streamWrapper::dir_readdir


id: streamWrapper::mkdir
type: function
doc:
<comment>Description:</comment>
  Create a directory
  
  This method is called in response to <strong>mkdir()</strong>.
  
  In order for the appropriate error message to be returned this method should not be defined if the
  wrapper does not support creating directories.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>     Directory which should be created.
  <info>int</info>     <strong>$mode</strong>     The value passed to <strong>mkdir()</strong>.
  <info>int</info>     <strong>$options</strong>  A bitwise mask of values, such as <info>STREAM_MKDIR_RECURSIVE</info>.

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

<comment>See Also:</comment>
   * <strong>mkdir()</strong>
   * streamwrapper::rmdir


id: streamWrapper::rename
type: function
doc:
<comment>Description:</comment>
  Renames a file or directory
  
  This method is called in response to <strong>rename()</strong>.
  
  Should attempt to rename <strong>$path_from</strong> to <strong>$path_to</strong>
  
  In order for the appropriate error message to be returned this method should not be defined if the
  wrapper does not support renaming files.

<comment>Param:</comment>
  <info>string</info>  <strong>$path_from</strong>  The URL to the current file.
  <info>string</info>  <strong>$path_to</strong>    The URL which the <strong>$path_from</strong> should be renamed to.

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

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


id: streamWrapper::rmdir
type: function
doc:
<comment>Description:</comment>
  Removes a directory
  
  This method is called in response to <strong>rmdir()</strong>.
  
  In order for the appropriate error message to be returned this method should not be defined if the
  wrapper does not support removing directories.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>     The directory URL which should be removed.
  <info>int</info>     <strong>$options</strong>  A bitwise mask of values, such as <info>STREAM_MKDIR_RECURSIVE</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>
   * streamwrapper::mkdir
   * streamwrapper::unlink


id: streamWrapper::stream_cast
type: function
doc:
<comment>Description:</comment>
  Retrieve the underlaying resource
  
  This method is called in response to <strong>stream_select()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$cast_as</strong>  Can be <info>STREAM_CAST_FOR_SELECT</info> when <strong>stream_select()</strong> is calling <strong>stream_cast()</strong> or
                 <info>STREAM_CAST_AS_STREAM</info> when <strong>stream_cast()</strong> is called for other uses.

<comment>Return:</comment>
  <info>resource</info>  Should return the underlying stream resource used by the wrapper, or <info>false</info>.

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


id: streamWrapper::stream_close
type: function
doc:
<comment>Description:</comment>
  Close a resource
  
  This method is called in response to <strong>fclose()</strong>.
  
  All resources that were locked, or allocated, by the wrapper should be released.

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

<comment>See Also:</comment>
   * <strong>fclose()</strong>
   * streamWrapper::dir_closedir


id: streamWrapper::stream_eof
type: function
doc:
<comment>Description:</comment>
  Tests for end-of-file on a file pointer
  
  This method is called in response to <strong>feof()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Should return <info>true</info> if the read/write position is at the end of the stream and if no more
        data is available to be read, or <info>false</info> otherwise.

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


id: streamWrapper::stream_flush
type: function
doc:
<comment>Description:</comment>
  Flushes the output
  
  This method is called in response to <strong>fflush()</strong> and when the stream is being closed while any
  unflushed data has been written to it before.
  
  If you have cached data in your stream but not yet stored it into the underlying storage, you
  should do so now.

<comment>Return:</comment>
  <info>bool</info>  Should return <info>true</info> if the cached data was successfully stored (or if there was no data to
        store), or <info>false</info> if the data could not be stored.

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


id: streamWrapper::stream_lock
type: function
doc:
<comment>Description:</comment>
  Advisory file locking
  
  This method is called in response to <strong>flock()</strong>, when <strong>file_put_contents()</strong> (when <strong>$flags</strong> contains
  <info>LOCK_EX</info>), <strong>stream_set_blocking()</strong> and when closing the stream (<info>LOCK_UN</info>).

<comment>Param:</comment>
  <info>int</info>  <strong>$operation</strong>  <strong>$operation</strong> is one of the following: <info>LOCK_SH</info> to acquire a shared lock (reader).
                   <info>LOCK_EX</info> to acquire an exclusive lock (writer). <info>LOCK_UN</info> to release a lock (shared
                   or exclusive). <info>LOCK_NB</info> if you don't want <strong>flock()</strong> to block while locking. (not
                   supported on Windows)
                   
                   <info>LOCK_SH</info> to acquire a shared lock (reader).
                   
                   <info>LOCK_EX</info> to acquire an exclusive lock (writer).
                   
                   <info>LOCK_UN</info> to release a lock (shared or exclusive).
                   
                   <info>LOCK_NB</info> if you don't want <strong>flock()</strong> to block while locking. (not supported on
                   Windows)

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

<comment>See Also:</comment>
   * <strong>stream_set_blocking()</strong>
   * <strong>flock()</strong>


id: streamWrapper::stream_metadata
type: function
doc:
<comment>Description:</comment>
  Change stream metadata
  
  This method is called to set metadata on the stream. It is called when one of the following
  functions is called on a stream URL: <strong>touch()</strong><strong>chmod()</strong><strong>chown()</strong><strong>chgrp()</strong> Please note that some of these
  operations may not be available on your system.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>    The file path or URL to set metadata.  Note that in the case of a URL, it must be
                   a :// delimited URL.  Other URL forms are not supported.
  <info>int</info>     <strong>$option</strong>  One of: <info>STREAM_META_TOUCH</info> (The method was called in response to
                   <strong>touch()</strong>)<info>STREAM_META_OWNER_NAME</info> (The method was called in response to <strong>chown()</strong> with
                   string parameter)<info>STREAM_META_OWNER</info> (The method was called in response to
                   <strong>chown()</strong>)<info>STREAM_META_GROUP_NAME</info> (The method was called in response to
                   <strong>chgrp()</strong>)<info>STREAM_META_GROUP</info> (The method was called in response to
                   <strong>chgrp()</strong>)<info>STREAM_META_ACCESS</info> (The method was called in response to  <strong>chmod()</strong>)
  <info>mixed</info>   <strong>$value</strong>   If <strong>$option</strong> is <info>STREAM_META_TOUCH</info>: <info>Array</info> consisting of two arguments of the <strong>touch()</strong>
                   function.<info>STREAM_META_OWNER_NAME</info> or <info>STREAM_META_GROUP_NAME</info>: The name of the owner
                   user/group as <info>string</info>.<info>STREAM_META_OWNER</info> or <info>STREAM_META_GROUP</info>: The value owner
                   user/group argument as <info>int</info>.<info>STREAM_META_ACCESS</info>: The argument of the <strong>chmod()</strong> as
                   <info>int</info>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure. If <strong>$option</strong> is not implemented, <info>false</info> should be
        returned.

<comment>See Also:</comment>
   * <strong>touch()</strong>
   * <strong>chmod()</strong>
   * <strong>chown()</strong>
   * <strong>chgrp()</strong>


id: streamWrapper::stream_open
type: function
doc:
<comment>Description:</comment>
  Opens file or URL
  
  This method is called immediately after the wrapper is initialized (f.e. by <strong>fopen()</strong> and
  <strong>file_get_contents()</strong>).

<comment>Param:</comment>
  <info>string</info>       <strong>$path</strong>         Specifies the URL that was passed to the original function.
                             
                             The URL can be broken apart with <strong>parse_url()</strong>.  Note that only URLs
                             delimited by :// are supported. : and :/ while technically valid URLs,
                             are not.
  <info>string</info>       <strong>$mode</strong>         The mode used to open the file, as detailed for <strong>fopen()</strong>.
                             
                             Remember to check if the <strong>$mode</strong> is valid for the <strong>$path</strong> requested.
  <info>int</info>          <strong>$options</strong>      Holds additional flags set by the streams API. It can hold one or more
                             of the following values OR'd together. FlagDescription<info>STREAM_USE_PATH</info>If
                             <strong>$path</strong> is relative, search for the resource using the include_path.
                             <info>STREAM_REPORT_ERRORS</info>If this flag is set, you are responsible for
                             raising errors using <strong>trigger_error()</strong> during opening of the stream.  If
                             this flag is not set, you should not raise any errors.
  <info>string|null</info>  <strong>$opened_path</strong>  If the <strong>$path</strong> is opened successfully, and <info>STREAM_USE_PATH</info> is set in
                             <strong>$options</strong>, <strong>$opened_path</strong> should be set to the full path of the
                             file/resource that was actually opened.

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

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


id: streamWrapper::stream_read
type: function
doc:
<comment>Description:</comment>
  Read from stream
  
  This method is called in response to <strong>fread()</strong> and <strong>fgets()</strong>.
  
  Remember to update the read/write position of the stream (by the number of bytes that were
  successfully read).

<comment>Param:</comment>
  <info>int</info>  <strong>$count</strong>  How many bytes of data from the current position should be returned.

<comment>Return:</comment>
  <info>string|false</info>  If there are less than <strong>$count</strong> bytes available, as many as are available should be
                returned. If no more data is available, an empty string should be returned. To
                signal that reading failed, <info>false</info> should be returned.

<comment>See Also:</comment>
   * <strong>fread()</strong>
   * <strong>fgets()</strong>


id: streamWrapper::stream_seek
type: function
doc:
<comment>Description:</comment>
  Seeks to specific location in a stream
  
  This method is called in response to <strong>fseek()</strong>.
  
  The read/write position of the stream should be updated according to the <strong>$offset</strong> and <strong>$whence</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The stream offset to seek to.
  <info>int</info>  <strong>$whence</strong>  Possible values: <info>SEEK_SET</info> - Set position equal to <strong>$offset</strong> bytes.<info>SEEK_CUR</info> - Set
                position to current location plus <strong>$offset</strong>.<info>SEEK_END</info> - Set position to end-of-file
                plus <strong>$offset</strong>.
                
                The current implementation never sets <strong>$whence</strong> to <info>SEEK_CUR</info>; instead such seeks are
                internally converted to <info>SEEK_SET</info> seeks.

<comment>Return:</comment>
  <info>bool</info>  Return <info>true</info> if the position was updated, <info>false</info> otherwise.

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


id: streamWrapper::stream_set_option
type: function
doc:
<comment>Description:</comment>
  Change stream options
  
  This method is called to set options on the stream.

<comment>Param:</comment>
  <info>int</info>  <strong>$option</strong>  One of: <info>STREAM_OPTION_BLOCKING</info> (The method was called in response to
                <strong>stream_set_blocking()</strong>)<info>STREAM_OPTION_READ_TIMEOUT</info> (The method was called in response
                to <strong>stream_set_timeout()</strong>)<info>STREAM_OPTION_WRITE_BUFFER</info> (The method was called in
                response to  <strong>stream_set_write_buffer()</strong>)
  <info>int</info>  <strong>$arg1</strong>    If <strong>$option</strong> is <info>STREAM_OPTION_BLOCKING</info>: requested blocking mode (1 meaning block 0 not
                blocking).<info>STREAM_OPTION_READ_TIMEOUT</info>: the timeout in
                seconds.<info>STREAM_OPTION_WRITE_BUFFER</info>: buffer mode (<info>STREAM_BUFFER_NONE</info> or
                <info>STREAM_BUFFER_FULL</info>).
  <info>int</info>  <strong>$arg2</strong>    If <strong>$option</strong> is <info>STREAM_OPTION_BLOCKING</info>: This option is not
                set.<info>STREAM_OPTION_READ_TIMEOUT</info>: the timeout in
                microseconds.<info>STREAM_OPTION_WRITE_BUFFER</info>: the requested buffer size.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure. If <strong>$option</strong> is not implemented, <info>false</info> should be
        returned.

<comment>See Also:</comment>
   * <strong>stream_set_blocking()</strong>
   * <strong>stream_set_timeout()</strong>
   * <strong>stream_set_write_buffer()</strong>


id: streamWrapper::stream_stat
type: function
doc:
<comment>Description:</comment>
  Retrieve information about a file resource
  
  This method is called in response to <strong>fstat()</strong>.

<comment>Return:</comment>
  <info>array|false</info>  See <strong>stat()</strong>.

<comment>See Also:</comment>
   * <strong>stat()</strong>
   * streamwrapper::url_stat


id: streamWrapper::stream_tell
type: function
doc:
<comment>Description:</comment>
  Retrieve the current position of a stream
  
  This method is called in response to <strong>fseek()</strong> to determine the current position.

<comment>Return:</comment>
  <info>int</info>  Should return the current position of the stream.

<comment>See Also:</comment>
   * streamWrapper::stream_tell


id: streamWrapper::stream_truncate
type: function
doc:
<comment>Description:</comment>
  Truncate stream
  
  Will respond to truncation, e.g., through <strong>ftruncate()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$new_size</strong>  The new size.

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

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


id: streamWrapper::stream_write
type: function
doc:
<comment>Description:</comment>
  Write to stream
  
  This method is called in response to <strong>fwrite()</strong>.
  
  Remember to update the current position of the stream by number of bytes that were successfully
  written.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Should be stored into the underlying stream.
                 
                 If there is not enough room in the underlying stream, store as much as possible.

<comment>Return:</comment>
  <info>int</info>  Should return the number of bytes that were successfully stored, or 0 if none could be
       stored.

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


id: streamWrapper::unlink
type: function
doc:
<comment>Description:</comment>
  Delete a file
  
  This method is called in response to <strong>unlink()</strong>.
  
  In order for the appropriate error message to be returned this method should not be defined if the
  wrapper does not support removing files.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  The file URL which should be deleted.

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

<comment>See Also:</comment>
   * <strong>unlink()</strong>
   * streamWrapper::rmdir


id: streamWrapper::url_stat
type: function
doc:
<comment>Description:</comment>
  Retrieve information about a file
  
  This method is called in response to all <strong>stat()</strong> related functions, such as:
  <strong>copy()</strong><strong>fileperms()</strong><strong>fileinode()</strong><strong>filesize()</strong><strong>fileowner()</strong><strong>filegroup()</strong><strong>fileatime()</strong><strong>filemtime()</strong><strong>filectime()</strong><strong>filetype()</strong><strong>is_writable()</strong><strong>is_readable()</strong><strong>is_executable()</strong><strong>is_file()</strong><strong>is_dir()</strong><strong>is_link()</strong><strong>file_exists()</strong><strong>lstat()</strong><strong>stat()</strong>SplFileInfo::getPermsSplFileInfo::getInodeSplFileInfo::getSizeSplFileInfo::getOwnerSplFileInfo::getGroupSplFileInfo::getATimeSplFileInfo::getMTimeSplFileInfo::getCTimeSplFileInfo::getTypeSplFileInfo::isWritableSplFileInfo::isReadableSplFileInfo::isExecutableSplFileInfo::isFileSplFileInfo::isDirSplFileInfo::isLinkRecursiveDirectoryIterator::hasChildren

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>   The file path or URL to stat.  Note that in the case of a URL, it must be a ://
                  delimited URL.  Other URL forms are not supported.
  <info>int</info>     <strong>$flags</strong>  Holds additional flags set by the streams API. It can hold one or more of the
                  following values OR'd together. FlagDescriptionSTREAM_URL_STAT_LINK For resources
                  with the ability to link to other resource (such as an HTTP Location: forward, or
                  a filesystem symlink).  This flag specified that only information about the link
                  itself should be returned, not the resource pointed to by the link.  This flag is
                  set in response to calls to <strong>lstat()</strong>, <strong>is_link()</strong>, or <strong>filetype()</strong>.
                  STREAM_URL_STAT_QUIETIf this flag is set, your wrapper should not raise any
                  errors.  If this flag is not set, you are responsible for reporting errors using
                  the <strong>trigger_error()</strong> function during stating of the path.

<comment>Return:</comment>
  <info>array|false</info>  Should return an <info>array</info> with the same elements as <strong>stat()</strong> does. Unknown or unavailable
               values should be set to a rational value (usually <info>0</info>). Special attention should be
               payed to <return>mode</return> as documented under <strong>stat()</strong>. Should return <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>stat()</strong>
   * streamwrapper::stream_stat


id: stream_bucket_append
type: function
doc:
<comment>Description:</comment>
  Append bucket to brigade
    
  
  This function is
  currently not documented; only its argument list is available.

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


id: stream_bucket_make_writeable
type: function
doc:
<comment>Description:</comment>
  Returns a bucket object from the brigade to operate on
    
  
  This function is called whenever there is the need to access and operate on the content contains
  in a brigade. It is typically called from php_user_filter::filter.

<comment>Param:</comment>
  <info>resource</info>  <strong>$brigade</strong>  The brigade to return a bucket object from.

<comment>Return:</comment>
  <info>object|null</info>  Returns a bucket object with the properties listed below or <info>null</info>. data (<info>string</info>)
               <strong>$data</strong><return>bucket</return> The current string in the bucket. datalen (<info>integer</info>) <strong>$datalen</strong><return>bucket</return> The
               length of the string in the bucket.
               
               <strong>$data</strong><return>bucket</return> The current string in the bucket.
               
               <strong>$datalen</strong><return>bucket</return> The length of the string in the bucket.

<comment>See Also:</comment>
   * <strong>stream_bucket_append()</strong>
   * <strong>stream_bucket_prepend()</strong>


id: stream_bucket_new
type: function
doc:
<comment>Description:</comment>
  Create a new bucket for use on the current stream
    
  
  This function is
  currently not documented; only its argument list is available.

<comment>Return:</comment>
  <info>object</info>  


id: stream_bucket_prepend
type: function
doc:
<comment>Description:</comment>
  Prepend bucket to brigade
    
  
  This function can be called to prepend a bucket to a bucket brigade. It is typically called from
  php_user_filter::filter.

<comment>Param:</comment>
  <info>resource</info>  <strong>$brigade</strong>  <strong>$brigade</strong> is a resource pointing to a <return>bucket brigade</return> which contains one or more
                      <return>bucket</return> objects.
  <info>object</info>    <strong>$bucket</strong>   A bucket object.

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


id: stream_context_create
type: function
doc:
<comment>Description:</comment>
  Creates a stream context
  
  Creates and returns a stream context with any options supplied in <strong>$options</strong> preset.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$options</strong>  Must be an associative array of associative arrays in the format
                        <return>$arr['wrapper']['option'] = $value</return>, or <info>null</info>. Refer to context options for a
                        list of available wrappers and options.
                        
                        Defaults to <info>null</info>.
  <info>array|null</info>  <strong>$params</strong>   Must be an associative array in the format <return>$arr['parameter'] = $value</return>, or
                        <info>null</info>. Refer to context parameters for a listing of standard stream
                        parameters.

<comment>Return:</comment>
  <info>resource</info>  A stream context <info>resource</info>.

<comment>See Also:</comment>
   * <strong>stream_context_set_option()</strong>
   * Listing of supported wrappers ()
   * Context options ()


id: stream_context_get_default
type: function
doc:
<comment>Description:</comment>
  Retrieve the default stream context
  
  Returns the default stream context which is used whenever file operations (<strong>fopen()</strong>,
  <strong>file_get_contents()</strong>, etc...) are called without a context parameter.  Options for the default
  context can optionally be specified with this function using the same syntax as
  <strong>stream_context_create()</strong>.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$options</strong>  <strong>$options</strong> must be an associative array of associative arrays in the format
                        <return>$arr['wrapper']['option'] = $value</return>, or <info>null</info>.

<comment>Return:</comment>
  <info>resource</info>  A stream context <info>resource</info>.

<comment>See Also:</comment>
   * <strong>stream_context_create()</strong>
   * <strong>stream_context_set_default()</strong>
   * Listing of supported wrappers with context options ().


id: stream_context_get_options
type: function
doc:
<comment>Description:</comment>
  Retrieve options for a stream/wrapper/context
  
  Returns an array of options on the specified stream or context.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream_or_context</strong>  The <info>stream</info> or <info>context</info> to get options from

<comment>Return:</comment>
  <info>array</info>  Returns an associative array with the options.


id: stream_context_get_params
type: function
doc:
<comment>Description:</comment>
  Retrieves parameters from a context
  
  Retrieves parameter and options information from the stream or context.

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  A stream <info>resource</info> or a context <info>resource</info>

<comment>Return:</comment>
  <info>array</info>  Returns an associate array containing all context options and parameters.

<comment>See Also:</comment>
   * <strong>stream_context_set_option()</strong>
   * <strong>stream_context_set_params()</strong>


id: stream_context_set_default
type: function
doc:
<comment>Description:</comment>
  Set the default stream context
  
  Set the default stream context which will be used whenever file operations (<strong>fopen()</strong>,
  <strong>file_get_contents()</strong>, etc...) are called without a context parameter. Uses the same syntax as
  <strong>stream_context_create()</strong>.

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  The options to set for the default context.
                   
                   <strong>$options</strong> must be an associative array of associative arrays in the format
                   <return>$arr['wrapper']['option'] = $value</return>.

<comment>Return:</comment>
  <info>resource</info>  Returns the default stream context.

<comment>See Also:</comment>
   * <strong>stream_context_create()</strong>
   * <strong>stream_context_get_default()</strong>
   * Listing of supported wrappers with context options ().


id: stream_context_set_option
type: function
doc:
<comment>Description:</comment>
  Sets an option for a stream/wrapper/context
  
  Sets an option on the specified context.  <strong>$value</strong> is set to <strong>$option</strong> for <strong>$wrapper</strong>

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream_or_context</strong>  The stream or context resource to apply the options to.
  <info>string</info>    <strong>$wrapper</strong>            The name of the wrapper (which may be different than the protocol).
                                Refer to context options and parameters for a listing of stream
                                options.
  <info>string</info>    <strong>$option</strong>             The name of the option.
  <info>mixed</info>     <strong>$value</strong>              The value of the option.
  <info>array</info>     <strong>$options</strong>            The options to set for <strong>$stream_or_context</strong>.
                                
                                <strong>$options</strong> must be an associative array of associative arrays in the
                                format <return>$arr['wrapper']['option'] = $value</return>.
                                
                                Refer to context options and parameters for a listing of stream
                                options.

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


id: stream_context_set_options
type: function
doc:
<comment>Description:</comment>
  Sets options on the specified context
  
  Sets options on the specified context.

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  The stream or context resource to apply the options to.
  <info>array</info>     <strong>$options</strong>  The options to set for <strong>$context</strong>.
                      
                      <strong>$options</strong> must be an associative <info>array</info> of associative arrays in the format
                      $array['wrapper']['option'] = $value.
                      
                      Refer to context options and parameters for a listing of stream options.

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

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


id: stream_context_set_params
type: function
doc:
<comment>Description:</comment>
  Set parameters for a stream/wrapper/context
  
  Sets parameters on the specified context.

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  The stream or context to apply the parameters too.
  <info>array</info>     <strong>$params</strong>   An associative array of parameters to be set in the following format:
                      <return>$params['paramname'] = "paramvalue";</return>.

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

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


id: stream_copy_to_stream
type: function
doc:
<comment>Description:</comment>
  Copies data from one stream to another
  
  Makes a copy of up to <strong>$length</strong> bytes of data from the current position (or from the <strong>$offset</strong>
  position, if specified) in <strong>$from</strong> to <strong>$to</strong>. If <strong>$length</strong> is <info>null</info>, all remaining content in <strong>$from</strong> will
  be copied.

<comment>Param:</comment>
  <info>resource</info>  <strong>$from</strong>    The source stream
  <info>resource</info>  <strong>$to</strong>      The destination stream
  <info>int|null</info>  <strong>$length</strong>  Maximum bytes to copy. By default all bytes left are copied.
  <info>int</info>       <strong>$offset</strong>  The offset where to start to copy data

<comment>Return:</comment>
  <info>int|false</info>  Returns the total count of bytes copied, or <info>false</info> on failure.

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


id: stream_filter_append
type: function
doc:
<comment>Description:</comment>
  Attach a filter to a stream
  
  Adds <strong>$filtername</strong> to the list of filters attached to <strong>$stream</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>      The target stream.
  <info>string</info>    <strong>$filtername</strong>  The filter name.
  <info>int</info>       <strong>$read_write</strong>  By default, <strong>stream_filter_append()</strong> will attach the filter to the <return>read
                         filter chain</return> if the file was opened for reading (i.e. File Mode: <return>r</return>, and/or
                         <return>+</return>).  The filter will also be attached to the <return>write filter chain</return> if the file
                         was opened for writing (i.e. File Mode: <return>w</return>, <return>a</return>, and/or <return>+</return>).
                         <info>STREAM_FILTER_READ</info>, <info>STREAM_FILTER_WRITE</info>, and/or <info>STREAM_FILTER_ALL</info> can also
                         be passed to the <strong>$read_write</strong> parameter to override this behavior.
  <info>mixed</info>     <strong>$params</strong>      This filter will be added with the specified  <strong>$params</strong> to the end of the
                         list and will therefore be called last during stream operations. To add a
                         filter to the beginning of the list, use <strong>stream_filter_prepend()</strong>.

<comment>Return:</comment>
  <info>resource</info>  Returns a resource on success or <info>false</info> on failure. The resource can be used to refer to
            this filter instance during a call to <strong>stream_filter_remove()</strong>.
            
            <info>false</info> is returned if <strong>$stream</strong> is not a resource or if <strong>$filtername</strong> cannot be located.

<comment>See Also:</comment>
   * <strong>stream_filter_register()</strong>
   * <strong>stream_filter_prepend()</strong>
   * <strong>stream_get_filters()</strong>


id: stream_filter_prepend
type: function
doc:
<comment>Description:</comment>
  Attach a filter to a stream
  
  Adds <strong>$filtername</strong> to the list of filters attached to <strong>$stream</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>      The target stream.
  <info>string</info>    <strong>$filtername</strong>  The filter name.
  <info>int</info>       <strong>$read_write</strong>  By default, <strong>stream_filter_prepend()</strong> will attach the filter to the <return>read
                         filter chain</return> if the file was opened for reading (i.e. File Mode: <return>r</return>, and/or
                         <return>+</return>).  The filter will also be attached to the <return>write filter chain</return> if the file
                         was opened for writing (i.e. File Mode: <return>w</return>, <return>a</return>, and/or <return>+</return>).
                         <info>STREAM_FILTER_READ</info>, <info>STREAM_FILTER_WRITE</info>, and/or <info>STREAM_FILTER_ALL</info> can also
                         be passed to the <strong>$read_write</strong> parameter to override this behavior. See
                         <strong>stream_filter_append()</strong> for an example of using this parameter.
  <info>mixed</info>     <strong>$params</strong>      This filter will be added with the specified <strong>$params</strong> to the beginning of
                         the list and will therefore be called first during stream operations.  To
                         add a filter to the end of the list, use <strong>stream_filter_append()</strong>.

<comment>Return:</comment>
  <info>resource</info>  Returns a resource on success or <info>false</info> on failure. The resource can be used to refer to
            this filter instance during a call to <strong>stream_filter_remove()</strong>.
            
            <info>false</info> is returned if <strong>$stream</strong> is not a resource or if <strong>$filtername</strong> cannot be located.

<comment>See Also:</comment>
   * <strong>stream_filter_register()</strong>
   * <strong>stream_filter_append()</strong>


id: stream_filter_register
type: function
doc:
<comment>Description:</comment>
  Register a user defined stream filter
  
  <strong>stream_filter_register()</strong> allows you to implement your own filter on any registered stream used
  with all the other filesystem functions (such as <strong>fopen()</strong>, <strong>fread()</strong> etc.).

<comment>Param:</comment>
  <info>string</info>  <strong>$filter_name</strong>  The filter name to be registered.
  <info>string</info>  <strong>$class</strong>        To implement a filter, you need to define a class as an extension of
                        <class>php_user_filter</class> with a number of member functions. When performing
                        read/write operations on the stream to which your filter is attached, PHP
                        will pass the data through your filter (and any other filters attached to
                        that stream) so that the data may be modified as desired. You must implement
                        the methods exactly as described in <class>php_user_filter</class> - doing otherwise will
                        lead to undefined behaviour.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        <strong>stream_filter_register()</strong> will return <info>false</info> if the <strong>$filter_name</strong> is already defined.

<comment>See Also:</comment>
   * <strong>stream_wrapper_register()</strong>
   * <strong>stream_filter_append()</strong>
   * <strong>stream_filter_prepend()</strong>


id: stream_filter_remove
type: function
doc:
<comment>Description:</comment>
  Remove a filter from a stream
  
  Removes a stream filter previously added to a stream with <strong>stream_filter_prepend()</strong> or
  <strong>stream_filter_append()</strong>.  Any data remaining in the filter's internal buffer will be flushed
  through to the next filter before removing it.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream_filter</strong>  The stream filter to be removed.

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

<comment>See Also:</comment>
   * <strong>stream_filter_register()</strong>
   * <strong>stream_filter_append()</strong>
   * <strong>stream_filter_prepend()</strong>


id: stream_get_contents
type: function
doc:
<comment>Description:</comment>
  Reads remainder of a stream into a string
  
  Identical to <strong>file_get_contents()</strong>, except that <strong>stream_get_contents()</strong> operates on an already open
  stream resource and returns the remaining contents in a string, up to <strong>$length</strong> bytes and starting
  at the specified <strong>$offset</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  A stream resource (e.g. returned from <strong>fopen()</strong>)
  <info>int|null</info>  <strong>$length</strong>  The maximum bytes to read. Defaults to <info>null</info> (read all the remaining buffer).
  <info>int</info>       <strong>$offset</strong>  Seek to the specified offset before reading. If this number is negative, no
                     seeking will occur and reading will start from the current position.

<comment>Return:</comment>
  <info>string|false</info>  Returns a string or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>fgets()</strong>
   * <strong>fread()</strong>
   * <strong>fpassthru()</strong>


id: stream_get_filters
type: function
doc:
<comment>Description:</comment>
  Retrieve list of registered filters
  
  Retrieve the list of registered filters on the running system.

<comment>Return:</comment>
  <info>array</info>  Returns an indexed array containing the name of all stream filters available.

<comment>See Also:</comment>
   * <strong>stream_filter_register()</strong>
   * <strong>stream_get_wrappers()</strong>


id: stream_get_line
type: function
doc:
<comment>Description:</comment>
  Gets line from stream resource up to a given delimiter
  
  Gets a line from the given handle.
  
  Reading ends when <strong>$length</strong> bytes have been read, when the non-empty string specified by <strong>$ending</strong> is
  found (which is not included in the return value), or on EOF (whichever comes first).
  
  This function is nearly identical to <strong>fgets()</strong> except in that it allows end of line delimiters other
  than the standard \n, \r, and \r\n, and does not return the delimiter itself.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  A valid file handle.
  <info>int</info>       <strong>$length</strong>  The maximum number of bytes to read from the handle. Negative values are not
                     supported. Zero (<return>0</return>) means the default socket chunk size, i.e. <return>8192</return> bytes.
  <info>string</info>    <strong>$ending</strong>  An optional string delimiter.

<comment>Return:</comment>
  <info>string|false</info>  Returns a string of up to <strong>$length</strong> bytes read from the file pointed to by <strong>$stream</strong>, or
                <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>fread()</strong>
   * <strong>fgets()</strong>
   * <strong>fgetc()</strong>


id: stream_get_meta_data
type: function
doc:
<comment>Description:</comment>
  Retrieves header/meta data from streams/file pointers
  
  Returns information about an existing <strong>$stream</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The stream can be any stream created by <strong>fopen()</strong>, <strong>fsockopen()</strong> <strong>pfsockopen()</strong> and
                     <strong>stream_socket_client()</strong>.

<comment>Return:</comment>
  <info>array</info>  The result array contains the following items:
         
         <return>timed_out</return> (bool) - <info>true</info> if the stream timed out while waiting for data on the last call to
         <strong>fread()</strong> or <strong>fgets()</strong>.
         
         <return>blocked</return> (bool) - <info>true</info> if the stream is in blocking IO mode. See <strong>stream_set_blocking()</strong>.
         
         <return>eof</return> (bool) - <info>true</info> if the stream has reached end-of-file.  Note that for socket streams this
         member can be <info>true</info> even when <return>unread_bytes</return> is non-zero.  To determine if there is more data
         to be read, use <strong>feof()</strong> instead of reading this item.
         
         <return>unread_bytes</return> (int) - the number of bytes currently contained in the PHP's own internal
         buffer.
         
         You shouldn't use this value in a script.
         
         <return>stream_type</return> (string) - a label describing the underlying implementation of the stream.
         
         <return>wrapper_type</return> (string) - a label describing the protocol wrapper implementation layered over
         the stream. See  for more information about wrappers.
         
         <return>wrapper_data</return> (mixed) - wrapper specific data attached to this stream.  See  for more
         information about wrappers and their wrapper data.
         
         <return>mode</return> (string) - the type of access required for this stream (see Table 1 of the fopen()
         reference)
         
         <return>seekable</return> (bool) - whether the current stream can be seeked.
         
         <return>uri</return> (string) - the URI/filename associated with this stream.
         
         <return>crypto</return> (array) - the TLS connection metadata for this stream. (Note: Only provided when the
         resource's stream uses TLS.)

<comment>See Also:</comment>
   * <strong>get_headers()</strong>
   * $http_response_header


id: stream_get_transports
type: function
doc:
<comment>Description:</comment>
  Retrieve list of registered socket transports
  
  Returns an indexed array containing the name of all socket transports available on the running
  system.

<comment>Return:</comment>
  <info>array</info>  Returns an indexed array of socket transports names.

<comment>See Also:</comment>
   * <strong>stream_get_filters()</strong>
   * <strong>stream_get_wrappers()</strong>


id: stream_get_wrappers
type: function
doc:
<comment>Description:</comment>
  Retrieve list of registered streams
  
  Retrieve list of registered streams available on the running system.

<comment>Return:</comment>
  <info>array</info>  Returns an indexed array containing the name of all stream wrappers available on the
         running system.

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


id: stream_is_local
type: function
doc:
<comment>Description:</comment>
  Checks if a stream is a local stream
  
  Checks if a stream, or a URL, is a local one or not.

<comment>Param:</comment>
  <info>resource|string</info>  <strong>$stream</strong>  The stream <info>resource</info> or URL to check.

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


id: stream_isatty
type: function
doc:
<comment>Description:</comment>
  Check if a stream is a TTY
  
  Determines if stream <strong>$stream</strong> refers to a valid terminal type device. This is a more portable
  version of <strong>posix_isatty()</strong>, since it works on Windows systems too.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  

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


id: stream_notification_callback
type: function
doc:
<comment>Description:</comment>
  A callback function for the notification context parameter
  
  A <info>callable</info> function, used by the notification context parameter, called during an event.
  
  This is not a real function, only a prototype of how the function should be.

<comment>Param:</comment>
  <info>int</info>          <strong>$notification_code</strong>  One of the <info>STREAM_NOTIFY_*</info> notification constants.
  <info>int</info>          <strong>$severity</strong>           One of the <info>STREAM_NOTIFY_SEVERITY_*</info> notification constants.
  <info>string|null</info>  <strong>$message</strong>            Passed if a descriptive message is available for the event.
  <info>int</info>          <strong>$message_code</strong>       Passed if a descriptive message code is available for the event.
                                   
                                   The meaning of this value is dependent on the specific wrapper in
                                   use.
  <info>int</info>          <strong>$bytes_transferred</strong>  If applicable, the <strong>$bytes_transferred</strong> will be populated.
  <info>int</info>          <strong>$bytes_max</strong>          If applicable, the <strong>$bytes_max</strong> will be populated.

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

<comment>See Also:</comment>
   * 


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


id: stream_resolve_include_path
type: function
doc:
<comment>Description:</comment>
  Resolve filename against the include path
    
  
  Resolve <strong>$filename</strong> against the include path according to the same rules as <strong>fopen()</strong>/<strong>include()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The filename to resolve.

<comment>Return:</comment>
  <info>string|false</info>  Returns a <info>string</info> containing the resolved absolute filename,  or <info>false</info> on failure.


id: stream_select
type: function
doc:
<comment>Description:</comment>
  Runs the equivalent of the select() system call on the given
     arrays of streams with a timeout specified by seconds and microseconds
  
  The <strong>stream_select()</strong> function accepts arrays of streams and waits for them to change status. Its
  operation is equivalent to that of the <strong>socket_select()</strong> function except in that it acts on streams.

<comment>Param:</comment>
  <info>array|null</info>  <strong>$read</strong>          The streams listed in the <strong>$read</strong> array will be watched to see if
                             characters become available for reading (more precisely, to see if a
                             read will not block - in particular, a stream resource is also ready on
                             end-of-file, in which case an <strong>fread()</strong> will return a zero length
                             string).
  <info>array|null</info>  <strong>$write</strong>         The streams listed in the <strong>$write</strong> array will be watched to see if a
                             write will not block.
  <info>array|null</info>  <strong>$except</strong>        The streams listed in the <strong>$except</strong> array will be watched for high
                             priority exceptional ("out-of-band") data arriving.
                             
                             When <strong>stream_select()</strong> returns, the arrays <strong>$read</strong>, <strong>$write</strong> and <strong>$except</strong> are
                             modified to indicate which stream resource(s) actually changed status.
                             The original keys of the <info>array</info>s are preserved.
  <info>int|null</info>    <strong>$seconds</strong>       The <strong>$seconds</strong> and <strong>$microseconds</strong> together form the timeout parameter,
                             <strong>$seconds</strong> specifies the number of seconds while <strong>$microseconds</strong> the number
                             of microseconds. The <strong>$timeout</strong> is an upper bound on the amount of time
                             that <strong>stream_select()</strong> will wait before it returns. If <strong>$seconds</strong> and
                             <strong>$microseconds</strong> are both set to <return>0</return>, <strong>stream_select()</strong> will not wait for data
                             - instead it will return immediately, indicating the current status of
                             the streams.
                             
                             If <strong>$seconds</strong> is <info>null</info> <strong>stream_select()</strong> can block indefinitely, returning
                             only when an event on one of the watched streams occurs (or if a signal
                             interrupts the system call).
                             
                             Using a timeout value of <return>0</return> allows you to instantaneously poll the
                             status of the streams, however, it is NOT a good idea to use a <return>0</return>
                             timeout value in a loop as it will cause your script to consume too
                             much CPU time.
                             
                             It is much better to specify a timeout value of a few seconds, although
                             if you need to be checking and running other code concurrently, using a
                             timeout value of at least <return>200000</return> microseconds will help reduce the CPU
                             usage of your script.
                             
                             Remember that the timeout value is the maximum time that will elapse;
                             <strong>stream_select()</strong> will return as soon as the requested streams are ready
                             for use.
  <info>int|null</info>    <strong>$microseconds</strong>  See <strong>$seconds</strong> description.

<comment>Return:</comment>
  <info>int|false</info>  On success <strong>stream_select()</strong> returns the number of stream resources contained in the
             modified arrays, which may be zero if the timeout expires before anything interesting
             happens. On error <info>false</info> is returned and a warning raised (this can happen if the system
             call is interrupted by an incoming signal).

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


id: stream_set_blocking
type: function
doc:
<comment>Description:</comment>
  Set blocking/non-blocking mode on a stream
  
  Sets blocking or non-blocking mode on a <strong>$stream</strong>.
  
  This function works for any stream that supports non-blocking mode (currently, regular files and
  socket streams).

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The stream.
  <info>bool</info>      <strong>$enable</strong>  If <strong>$enable</strong> is <info>false</info>, the given stream will be switched to non-blocking mode,
                     and if <info>true</info>, it will be switched to blocking mode.  This affects calls like
                     <strong>fgets()</strong> and <strong>fread()</strong> that read from the stream.  In non-blocking mode an <strong>fgets()</strong>
                     call will always return right away while in blocking mode it will wait for data
                     to become available on the stream.

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

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


id: stream_set_chunk_size
type: function
doc:
<comment>Description:</comment>
  Set the stream chunk size
  
  Set the stream chunk size.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The target stream.
  <info>int</info>       <strong>$size</strong>    The desired new chunk size.

<comment>Return:</comment>
  <info>int</info>  Returns the previous chunk size on success.


id: stream_set_read_buffer
type: function
doc:
<comment>Description:</comment>
  Set read file buffering on the given stream
  
  Sets the read buffer. It's the equivalent of <strong>stream_set_write_buffer()</strong>, but for read operations.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The file pointer.
  <info>int</info>       <strong>$size</strong>    The number of bytes to buffer. If <strong>$size</strong> is 0 then read operations are
                     unbuffered.  This ensures that all reads with <strong>fread()</strong> are completed before
                     other processes are allowed to read from that input stream.

<comment>Return:</comment>
  <info>int</info>  Returns 0 on success, or another value if the request cannot be honored.

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


id: stream_set_timeout
type: function
doc:
<comment>Description:</comment>
  Set timeout period on a stream
  
  Sets the timeout value on <strong>$stream</strong>, expressed in the sum of <strong>$seconds</strong> and <strong>$microseconds</strong>.
  
  When the stream times out, the 'timed_out' key of the array returned by <strong>stream_get_meta_data()</strong> is
  set to <info>true</info>, although no error/warning is generated.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>        The target stream.
  <info>int</info>       <strong>$seconds</strong>       The seconds part of the timeout to be set.
  <info>int</info>       <strong>$microseconds</strong>  The microseconds part of the timeout to be set.

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

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


id: stream_set_write_buffer
type: function
doc:
<comment>Description:</comment>
  Sets write file buffering on the given stream
  
  Sets the buffering for write operations on the given <strong>$stream</strong> to <strong>$size</strong> bytes.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The file pointer.
  <info>int</info>       <strong>$size</strong>    The number of bytes to buffer. If <strong>$size</strong> is 0 then write operations are
                     unbuffered.  This ensures that all writes with <strong>fwrite()</strong> are completed before
                     other processes are allowed to write to that output stream.

<comment>Return:</comment>
  <info>int</info>  Returns 0 on success, or another value if the request cannot be honored.

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


id: stream_socket_accept
type: function
doc:
<comment>Description:</comment>
  Accept a connection on a socket created by stream_socket_server
  
  Accept a connection on a socket previously created by <strong>stream_socket_server()</strong>.

<comment>Param:</comment>
  <info>resource</info>    <strong>$socket</strong>     The server socket to accept a connection from.
  <info>float|null</info>  <strong>$timeout</strong>    Override the default socket accept timeout. Time should be given in
                          seconds. By default, default_socket_timeout is used.
  <info>string</info>      <strong>$peer_name</strong>  Will be set to the name (address) of the client which connected, if
                          included and available from the selected transport.
                          
                          Can also be determined later using <strong>stream_socket_get_name()</strong>.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a stream to the accepted socket connection or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>stream_socket_server()</strong>
   * <strong>stream_socket_get_name()</strong>
   * <strong>stream_set_blocking()</strong>
   * <strong>stream_set_timeout()</strong>
   * <strong>fgets()</strong>
   * <strong>fgetss()</strong>
   * <strong>fwrite()</strong>
   * <strong>fclose()</strong>
   * <strong>feof()</strong>
   * 


id: stream_socket_client
type: function
doc:
<comment>Description:</comment>
  Open Internet or Unix domain socket connection
  
  Initiates a stream or datagram connection to the destination specified by <strong>$address</strong>.  The type of
  socket created is determined by the transport specified using standard URL formatting:
  <return>transport://target</return>.  For Internet Domain sockets (AF_INET) such as TCP and UDP, the <return>target</return> portion
  of the <strong>$address</strong> parameter should consist of a hostname or IP address followed by a colon and a
  port number.  For Unix domain sockets, the <return>target</return> portion should point to the socket file on the
  filesystem.
  
  The stream will by default be opened in blocking mode.  You can switch it to non-blocking mode by
  using <strong>stream_set_blocking()</strong>.

<comment>Param:</comment>
  <info>string</info>         <strong>$address</strong>        Address to the socket to connect to.
  <info>int</info>            <strong>$error_code</strong>     Will be set to the system level error number if connection fails.
  <info>string</info>         <strong>$error_message</strong>  Will be set to the system level error message if the connection
                                 fails.
  <info>float|null</info>     <strong>$timeout</strong>        Number of seconds until the <return>connect()</return> system call should timeout.
                                 By default, default_socket_timeout is used.  This parameter only
                                 applies when not making asynchronous connection attempts.   To set
                                 a timeout for reading/writing data over the socket, use the
                                 <strong>stream_set_timeout()</strong>, as the <strong>$timeout</strong> only applies while making
                                 connecting the socket.
                                 
                                 This parameter only applies when not making asynchronous connection
                                 attempts.
                                 
                                 To set a timeout for reading/writing data over the socket, use the
                                 <strong>stream_set_timeout()</strong>, as the <strong>$timeout</strong> only applies while making
                                 connecting the socket.
  <info>int</info>            <strong>$flags</strong>          Bitmask field which may be set to any combination of connection
                                 flags. Currently the select of connection flags is limited to
                                 <info>STREAM_CLIENT_CONNECT</info> (default), <info>STREAM_CLIENT_ASYNC_CONNECT</info> and
                                 <info>STREAM_CLIENT_PERSISTENT</info>.
  <info>resource|null</info>  <strong>$context</strong>        A valid context resource created with <strong>stream_context_create()</strong>.

<comment>Return:</comment>
  <info>resource|false</info>  On success a stream resource is returned which may be used together with the other
                  file functions (such as <strong>fgets()</strong>, <strong>fgetss()</strong>, <strong>fwrite()</strong>, <strong>fclose()</strong>, and <strong>feof()</strong>), <info>false</info>
                  on failure.

<comment>See Also:</comment>
   * <strong>stream_socket_server()</strong>
   * <strong>stream_set_blocking()</strong>
   * <strong>stream_set_timeout()</strong>
   * <strong>stream_select()</strong>
   * <strong>fgets()</strong>
   * <strong>fgetss()</strong>
   * <strong>fwrite()</strong>
   * <strong>fclose()</strong>
   * <strong>feof()</strong>
   * 


id: stream_socket_enable_crypto
type: function
doc:
<comment>Description:</comment>
  Turns encryption on/off on an already connected socket
  
  Enable or disable encryption on the stream.
  
  Once the crypto settings are established, cryptography can be turned on and off dynamically by
  passing <info>true</info> or <info>false</info> in the <strong>$enable</strong> parameter.

<comment>Param:</comment>
  <info>resource</info>       <strong>$stream</strong>          The stream resource.
  <info>bool</info>           <strong>$enable</strong>          Enable/disable cryptography on the stream.
  <info>int|null</info>       <strong>$crypto_method</strong>   Setup encryption on the stream. Valid methods are
                                  <info>STREAM_CRYPTO_METHOD_SSLv2_CLIENT</info><info>STREAM_CRYPTO_METHOD_SSLv3_CLIENT</info><info>STREAM_CRYPTO_METHOD_SSLv23_CLIENT</info><info>STREAM_CRYPTO_METHOD_ANY_CLIENT</info><info>STREAM_CRYPTO_METHOD_TLS_CLIENT</info><info>STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT</info><info>STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT</info><info>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT</info><info>STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT</info>
                                  (as of PHP
                                  7.4.0)<info>STREAM_CRYPTO_METHOD_SSLv2_SERVER</info><info>STREAM_CRYPTO_METHOD_SSLv3_SERVER</info><info>STREAM_CRYPTO_METHOD_SSLv23_SERVER</info><info>STREAM_CRYPTO_METHOD_ANY_SERVER</info><info>STREAM_CRYPTO_METHOD_TLS_SERVER</info><info>STREAM_CRYPTO_METHOD_TLSv1_0_SERVER</info><info>STREAM_CRYPTO_METHOD_TLSv1_1_SERVER</info><info>STREAM_CRYPTO_METHOD_TLSv1_2_SERVER</info><info>STREAM_CRYPTO_METHOD_TLSv1_3_SERVER</info>
                                  (as of PHP 7.4.0)
                                  
                                  <info>STREAM_CRYPTO_METHOD_SSLv2_CLIENT</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_SSLv3_CLIENT</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_SSLv23_CLIENT</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_ANY_CLIENT</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLS_CLIENT</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT</info> (as of PHP 7.4.0)
                                  
                                  <info>STREAM_CRYPTO_METHOD_SSLv2_SERVER</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_SSLv3_SERVER</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_SSLv23_SERVER</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_ANY_SERVER</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLS_SERVER</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLSv1_0_SERVER</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLSv1_1_SERVER</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLSv1_2_SERVER</info>
                                  
                                  <info>STREAM_CRYPTO_METHOD_TLSv1_3_SERVER</info> (as of PHP 7.4.0)
                                  
                                  If omitted, the <return>crypto_method</return> context option on the stream's SSL
                                  context will be used instead.
  <info>resource|null</info>  <strong>$session_stream</strong>  Seed the stream with settings from <strong>$session_stream</strong>.

<comment>Return:</comment>
  <info>int|bool</info>  Returns <info>true</info> on success, <info>false</info> if negotiation has failed or <return>0</return> if there isn't enough data
            and you should try again (only for non-blocking sockets).

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


id: stream_socket_get_name
type: function
doc:
<comment>Description:</comment>
  Retrieve the name of the local or remote sockets
  
  Returns the local or remote name of a given socket connection.

<comment>Param:</comment>
  <info>resource</info>  <strong>$socket</strong>  The socket to get the name of.
  <info>bool</info>      <strong>$remote</strong>  If set to <info>true</info> the <return>remote</return> socket name will be returned, if set to <info>false</info> the
                     <return>local</return> socket name will be returned.

<comment>Return:</comment>
  <info>string|false</info>  The name of the socket, or <info>false</info> on failure.

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


id: stream_socket_pair
type: function
doc:
<comment>Description:</comment>
  Creates a pair of connected, indistinguishable socket streams
    
  
  <strong>stream_socket_pair()</strong> creates a pair of connected, indistinguishable socket streams. This function
  is commonly used in IPC (Inter-Process Communication).

<comment>Param:</comment>
  <info>int</info>  <strong>$domain</strong>    The protocol family to be used: <info>STREAM_PF_INET</info>, <info>STREAM_PF_INET6</info> or <info>STREAM_PF_UNIX</info>
  <info>int</info>  <strong>$type</strong>      The type of communication to be used: <info>STREAM_SOCK_DGRAM</info>, <info>STREAM_SOCK_RAW</info>,
                  <info>STREAM_SOCK_RDM</info>, <info>STREAM_SOCK_SEQPACKET</info> or <info>STREAM_SOCK_STREAM</info>
  <info>int</info>  <strong>$protocol</strong>  The protocol to be used: <info>STREAM_IPPROTO_ICMP</info>, <info>STREAM_IPPROTO_IP</info>,
                  <info>STREAM_IPPROTO_RAW</info>, <info>STREAM_IPPROTO_TCP</info> or <info>STREAM_IPPROTO_UDP</info>

<comment>Return:</comment>
  <info>array|false</info>  Returns an <info>array</info> with the two socket resources on success, or <info>false</info> on failure.


id: stream_socket_recvfrom
type: function
doc:
<comment>Description:</comment>
  Receives data from a socket, connected or not 
  
  <strong>stream_socket_recvfrom()</strong> accepts data from a remote socket up to <strong>$length</strong> bytes.

<comment>Param:</comment>
  <info>resource</info>     <strong>$socket</strong>   The remote socket.
  <info>int</info>          <strong>$length</strong>   The number of bytes to receive from the <strong>$socket</strong>.
  <info>int</info>          <strong>$flags</strong>    The value of <strong>$flags</strong> can be any combination of the following: Possible
                         values for <strong>$flags</strong><info>STREAM_OOB</info> Process OOB (<return>out-of-band</return>) data. <info>STREAM_PEEK</info>
                         Retrieve data from the socket, but do not consume the buffer. Subsequent
                         calls to <strong>fread()</strong> or <strong>stream_socket_recvfrom()</strong> will see the same data.
  <info>string|null</info>  <strong>$address</strong>  If <strong>$address</strong> is provided it will be populated with the address of the remote
                         socket.

<comment>Return:</comment>
  <info>string|false</info>  Returns the read data, as a string, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>stream_socket_sendto()</strong>
   * <strong>stream_socket_client()</strong>
   * <strong>stream_socket_server()</strong>


id: stream_socket_sendto
type: function
doc:
<comment>Description:</comment>
  Sends a message to a socket, whether it is connected or not 
  
  Sends the specified <strong>$data</strong> through the <strong>$socket</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$socket</strong>   The socket to send <strong>$data</strong> to.
  <info>string</info>    <strong>$data</strong>     The data to be sent.
  <info>int</info>       <strong>$flags</strong>    The value of <strong>$flags</strong> can be any combination of the following: possible values
                      for <strong>$flags</strong><info>STREAM_OOB</info> Process OOB (out-of-band) data.
  <info>string</info>    <strong>$address</strong>  The address specified when the socket stream was created will be used unless
                      an alternate address is specified in <strong>$address</strong>.
                      
                      If specified, it must be in dotted quad (or [ipv6]) format.

<comment>Return:</comment>
  <info>int|false</info>  Returns a result code, as an integer, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>stream_socket_recvfrom()</strong>
   * <strong>stream_socket_client()</strong>
   * <strong>stream_socket_server()</strong>


id: stream_socket_server
type: function
doc:
<comment>Description:</comment>
  Create an Internet or Unix domain server socket
  
  Creates a stream or datagram socket on the specified <strong>$address</strong>.
  
  This function only creates a socket, to begin accepting connections use <strong>stream_socket_accept()</strong>.

<comment>Param:</comment>
  <info>string</info>         <strong>$address</strong>        The type of socket created is determined by the transport specified
                                 using standard URL formatting: <return>transport://target</return>.
                                 
                                 For Internet Domain sockets (<info>AF_INET</info>) such as TCP and UDP, the
                                 <return>target</return> portion of the  <strong>$remote_socket</strong> parameter should consist of a
                                 hostname or IP address followed by a colon and a port number.  For
                                 Unix domain sockets, the <return>target</return> portion should point to the socket
                                 file on the filesystem.
                                 
                                 Depending on the environment, Unix domain sockets may not be
                                 available. A list of available transports can be retrieved using
                                 <strong>stream_get_transports()</strong>. See  for a list of bulitin transports.
  <info>int</info>            <strong>$error_code</strong>     If the optional <strong>$error_code</strong> and <strong>$error_message</strong> arguments are
                                 present they will be set to indicate the actual system level error
                                 that occurred in the system-level <return>socket()</return>, <return>bind()</return>, and <return>listen()</return>
                                 calls. If the value returned in <strong>$error_code</strong> is  <return>0</return> and the function
                                 returned <info>false</info>, it is an indication that the error occurred before
                                 the <return>bind()</return> call. This is most likely due to a problem initializing
                                 the socket.  Note that the <strong>$error_code</strong> and <strong>$error_message</strong> arguments
                                 will always be passed by reference.
  <info>string</info>         <strong>$error_message</strong>  See <strong>$error_code</strong> description.
  <info>int</info>            <strong>$flags</strong>          A bitmask field which may be set to any combination of socket
                                 creation flags.
                                 
                                 For UDP sockets, you must use <info>STREAM_SERVER_BIND</info> as the <strong>$flags</strong>
                                 parameter.
  <info>resource|null</info>  <strong>$context</strong>        

<comment>Return:</comment>
  <info>resource|false</info>  Returns the created stream, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>stream_socket_client()</strong>
   * <strong>stream_set_blocking()</strong>
   * <strong>stream_set_timeout()</strong>
   * <strong>fgets()</strong>
   * <strong>fgetss()</strong>
   * <strong>fwrite()</strong>
   * <strong>fclose()</strong>
   * <strong>feof()</strong>
   * Curl extension


id: stream_socket_shutdown
type: function
doc:
<comment>Description:</comment>
  Shutdown a full-duplex connection
  
  Shutdowns (partially or not) a full-duplex connection.
  
  The associated buffer, or buffers, may or may not be emptied.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  An open stream (opened with <strong>stream_socket_client()</strong>, for example)
  <info>int</info>       <strong>$mode</strong>    One of the following constants: <info>STREAM_SHUT_RD</info> (disable further receptions),
                     <info>STREAM_SHUT_WR</info> (disable further transmissions) or <info>STREAM_SHUT_RDWR</info> (disable
                     further receptions and transmissions).

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

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


id: stream_supports_lock
type: function
doc:
<comment>Description:</comment>
  Tells whether the stream supports locking
  
  Tells whether the stream supports locking through  <strong>flock()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$stream</strong>  The stream to check.

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

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


id: stream_wrapper_register
type: function
doc:
<comment>Description:</comment>
  Register a URL wrapper implemented as a PHP class
  
  Allows you to implement your own protocol handlers and streams for use with all the other
  filesystem functions (such as <strong>fopen()</strong>, <strong>fread()</strong> etc.).

<comment>Param:</comment>
  <info>string</info>  <strong>$protocol</strong>  The wrapper name to be registered. Valid protocol names must contain
                     alphanumerics, dots (.), plusses (+), or hyphens (-) only.
  <info>string</info>  <strong>$class</strong>     The classname which implements the <strong>$protocol</strong>.
  <info>int</info>     <strong>$flags</strong>     Should be set to <info>STREAM_IS_URL</info> if <strong>$protocol</strong> is a URL protocol. Default is 0,
                     local stream.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
        
        <strong>stream_wrapper_register()</strong> will return <info>false</info> if the <strong>$protocol</strong> already has a handler.

<comment>See Also:</comment>
   * The  prototype class
   * 
   * <strong>stream_wrapper_unregister()</strong>
   * <strong>stream_wrapper_restore()</strong>
   * <strong>stream_get_wrappers()</strong>


id: stream_wrapper_restore
type: function
doc:
<comment>Description:</comment>
  Restores a previously unregistered built-in wrapper
  
  Restores a built-in wrapper previously unregistered with <strong>stream_wrapper_unregister()</strong>.

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

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


id: stream_wrapper_unregister
type: function
doc:
<comment>Description:</comment>
  Unregister a URL wrapper
  
  Allows you to disable an already defined stream wrapper. Once the wrapper has been disabled you
  may override it with a user-defined wrapper using <strong>stream_wrapper_register()</strong> or reenable it later
  on with <strong>stream_wrapper_restore()</strong>.

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

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


id: strftime
type: function
doc:
<comment>Description:</comment>
  Format a local time/date according to locale settings
  
  Format the time and/or date according to locale settings. Month and weekday names and other
  language-dependent strings respect the current locale set with <strong>setlocale()</strong>.
  
  Not all conversion specifiers may be supported by your C library, in which case they will not be
  supported by PHP's <strong>strftime()</strong>. Additionally, not all platforms support negative timestamps, so
  your date range may be limited to no earlier than the Unix epoch. This means that %e, %T, %R and,
  %D (and possibly others) - as well as dates prior to <return>Jan 1, 1970</return> - will not work on Windows, some
  Linux distributions, and a few other operating systems. For Windows systems, a complete overview
  of supported conversion specifiers can be found at MSDN. Instead use the IntlDateFormatter::format
  method.

<comment>Param:</comment>
  <info>string</info>    <strong>$format</strong>     The following characters are recognized in the <strong>$format</strong> parameter
                        string<strong>$format</strong>DescriptionExample returned valuesDay------<return>%a</return>An abbreviated
                        textual representation of the day<return>Sun</return> through <return>Sat</return><return>%A</return>A full textual
                        representation of the day<return>Sunday</return> through <return>Saturday</return><return>%d</return>Two-digit day of the month
                        (with leading zeros)<return>01</return> to <return>31</return><return>%e</return> Day of the month, with a space preceding
                        single digits. Not  implemented as described on Windows. See below for more
                        information. <return> 1</return> to <return>31</return><return>%j</return>Day of the year, 3 digits with leading zeros<return>001</return> to
                        <return>366</return><return>%u</return>ISO-8601 numeric representation of the day of the week<return>1</return> (for Monday)
                        through <return>7</return> (for Sunday)<return>%w</return>Numeric representation of the day of the week<return>0</return> (for
                        Sunday) through <return>6</return> (for Saturday)Week------<return>%U</return>Week number of the given year,
                        starting with the first Sunday as the first week<return>13</return> (for the 13th full week
                        of the year)<return>%V</return>ISO-8601:1988 week number of the given year, starting with the
                        first week of the year with at least 4 weekdays, with Monday being the start
                        of the week<return>01</return> through <return>53</return> (where 53 accounts for an overlapping week)<return>%W</return>A
                        numeric representation of the week of the year, starting with the first
                        Monday as the first week<return>46</return> (for the 46th week of the year beginning with a
                        Monday)Month------<return>%b</return>Abbreviated month name, based on the locale<return>Jan</return> through
                        <return>Dec</return><return>%B</return>Full month name, based on the locale<return>January</return> through
                        <return>December</return><return>%h</return>Abbreviated month name, based on the locale (an alias of %b)<return>Jan</return>
                        through <return>Dec</return><return>%m</return>Two digit representation of the month<return>01</return> (for January) through
                        <return>12</return> (for December)Year------<return>%C</return>Two digit representation of the century (year
                        divided by 100, truncated to an integer)<return>19</return> for the 20th Century<return>%g</return>Two digit
                        representation of the year going by ISO-8601:1988 standards (see %V)Example:
                        <return>09</return> for the week of January 6, 2009<return>%G</return>The full four-digit version of
                        %gExample: <return>2008</return> for the week of January 3, 2009<return>%y</return>Two digit representation of
                        the yearExample: <return>09</return> for 2009, <return>79</return> for 1979<return>%Y</return>Four digit representation for the
                        yearExample: <return>2038</return>Time------<return>%H</return>Two digit representation of the hour in 24-hour
                        format<return>00</return> through <return>23</return><return>%k</return>Hour in 24-hour format, with a space preceding single
                        digits<return> 0</return> through <return>23</return><return>%I</return>Two digit representation of the hour in 12-hour
                        format<return>01</return> through <return>12</return><return>%l (lower-case 'L')</return>Hour in 12-hour format, with a space
                        preceding single digits<return> 1</return> through <return>12</return><return>%M</return>Two digit representation of the
                        minute<return>00</return> through <return>59</return><return>%p</return>UPPER-CASE 'AM' or 'PM' based on the given timeExample:
                        <return>AM</return> for 00:31, <return>PM</return> for 22:23. The exact result depends on the Operating
                        System, and they can also return lower-case variants, or variants with dots
                        (such as <return>a.m.</return>).<return>%P</return>lower-case 'am' or 'pm' based on the given timeExample: <return>am</return>
                        for 00:31, <return>pm</return> for 22:23. Not supported by all Operating Systems.<return>%r</return>Same as
                        "%I:%M:%S %p"Example: <return>09:34:17 PM</return> for 21:34:17<return>%R</return>Same as "%H:%M"Example:
                        <return>00:35</return> for 12:35 AM, <return>16:44</return> for 4:44 PM<return>%S</return>Two digit representation of the
                        second<return>00</return> through <return>59</return><return>%T</return>Same as "%H:%M:%S"Example: <return>21:34:17</return> for 09:34:17
                        PM<return>%X</return>Preferred time representation based on locale, without the dateExample:
                        <return>03:59:16</return> or <return>15:59:16</return><return>%z</return>The time zone offset. Not implemented as described on
                        Windows. See below for more information.Example: <return>-0500</return> for US Eastern
                        Time<return>%Z</return>The time zone abbreviation. Not implemented as described on Windows.
                        See below for more information.Example: <return>EST</return> for Eastern TimeTime and Date
                        Stamps------<return>%c</return>Preferred date and time stamp based on localeExample: <return>Tue Feb
                        5 00:45:10 2009</return> for February 5, 2009 at 12:45:10 AM<return>%D</return>Same as
                        "%m/%d/%y"Example: <return>02/05/09</return> for February 5, 2009<return>%F</return>Same as "%Y-%m-%d"
                        (commonly used in database datestamps)Example: <return>2009-02-05</return> for February 5,
                        2009<return>%s</return>Unix Epoch Time timestamp (same as the <strong>time()</strong> function)Example:
                        <return>305815200</return> for September 10, 1979 08:40:00 AM<return>%x</return>Preferred date representation
                        based on locale, without the timeExample: <return>02/05/09</return> for February 5,
                        2009Miscellaneous------<return>%n</return>A newline character ("\n")---<return>%t</return>A Tab character
                        ("\t")---<return>%%</return>A literal percentage character ("%")---
                        
                        Contrary to ISO-9899:1999, Sun Solaris starts with Sunday as 1.  As a
                        result, <return>%u</return> may not function as described in this manual.
                        
                        Windows only:
                        
                        The <return>%e</return> modifier is not supported in the Windows implementation of this
                        function. To achieve this value, the <return>%#d</return> modifier can be used instead. The
                        example below illustrates how to write a cross platform compatible function.
                        
                        The <return>%z</return> and <return>%Z</return> modifiers both return the time zone name instead of the offset
                        or abbreviation.
                        
                        macOS and musl only: The <return>%P</return> modifier  is not supported in the macOS
                        implementation of this function.
  <info>int|null</info>  <strong>$timestamp</strong>  The optional <strong>$timestamp</strong> parameter is an
                        <info>int</info> Unix timestamp that defaults to the current
                        local time if <strong>$timestamp</strong> is omitted or <info>null</info>. In other
                        words, it defaults to the value of <strong>time()</strong>.

<comment>Return:</comment>
  <info>string|false</info>  Returns a string formatted according <strong>$format</strong> using the given <strong>$timestamp</strong> or the
                current local time if no timestamp is given.  Month and weekday names and other
                language-dependent strings respect the current locale set with <strong>setlocale()</strong>. The
                function returns <info>false</info> if <strong>$format</strong> is empty, contains unsupported conversion
                specifiers, or if the length of the returned string would be greater than <return>4095</return>.

<comment>See Also:</comment>
   * IntlDateFormatter::format
   * DateTimeInterface::format
   * Online strftime() format design tool
   * <strong>setlocale()</strong>
   * <strong>mktime()</strong>
   * <strong>strptime()</strong>
   * <strong>gmstrftime()</strong>
   * Open Group specification of <strong>strftime()</strong>


id: strip_tags
type: function
doc:
<comment>Description:</comment>
  Strip HTML and PHP tags from a string
  
  This function tries to return a string with all NULL bytes, HTML and PHP tags stripped from a
  given <strong>$string</strong>.  It uses the same tag stripping state machine as the <strong>fgetss()</strong> function.

<comment>Param:</comment>
  <info>string</info>             <strong>$string</strong>        The input string.
  <info>array|string|null</info>  <strong>$allowed_tags</strong>  You can use the optional second parameter to specify tags which
                                    should not be stripped. These are either given as <info>string</info>, or as
                                    of PHP 7.4.0, as <info>array</info>. Refer to the example below regarding the
                                    format of this parameter.
                                    
                                    HTML comments and PHP tags are also stripped. This is hardcoded
                                    and can not be changed with <strong>$allowed_tags</strong>.
                                    
                                    Self-closing XHTML tags are ignored and only non-self-closing
                                    tags should be used in <strong>$allowed_tags</strong>. For example, to allow both
                                    <return>\<br&gt;</return> and <return>\<br/&gt;</return>, you should use:

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

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


id: stripcslashes
type: function
doc:
<comment>Description:</comment>
  Un-quote string quoted with addcslashes
  
  Returns a string with backslashes stripped off. Recognizes C-like <return>\n</return>, <return>\r</return> ..., octal and
  hexadecimal representation.

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

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

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


id: stripos
type: function
doc:
<comment>Description:</comment>
  Find the position of the first occurrence of a case-insensitive substring in a string
  
  Find the numeric position of the first occurrence of <strong>$needle</strong> in the <strong>$haystack</strong> string.
  
  Unlike the <strong>strpos()</strong>, <strong>stripos()</strong> is case-insensitive.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>  The string to search in.
  <info>string</info>  <strong>$needle</strong>    The string to search for.
                     
                     Prior to PHP 8.0.0, if <strong>$needle</strong> is not a string, it is converted to an integer
                     and applied as the ordinal value of a character. This behavior is deprecated as
                     of PHP 7.3.0, and relying on it is highly discouraged. Depending on the
                     intended behavior, the <strong>$needle</strong> should either be explicitly cast to string, or
                     an explicit call to <strong>chr()</strong> should be performed.
  <info>int</info>     <strong>$offset</strong>    If specified, search will start this number of characters counted from the
                     beginning of the string. If the offset is negative, the search will start this
                     number of characters counted from the end of the string.

<comment>Return:</comment>
  <info>int|false</info>  Returns the position of where the needle exists relative to the beginning of the
             <strong>$haystack</strong> string (independent of offset). Also note that string positions start at 0,
             and not 1.
             
             Returns <info>false</info> if the needle was not found.
             
             This function may
             return Boolean <info>false</info>, but may also return a non-Boolean value which
             evaluates to <info>false</info>. Please read the section on Booleans for more
             information. Use the ===
             operator for testing the return value of this
             function.

<comment>See Also:</comment>
   * <strong>mb_stripos()</strong>
   * <strong>str_contains()</strong>
   * <strong>str_ends_with()</strong>
   * <strong>str_starts_with()</strong>
   * <strong>strpos()</strong>
   * <strong>strrpos()</strong>
   * <strong>strripos()</strong>
   * <strong>stristr()</strong>
   * <strong>substr()</strong>
   * <strong>str_ireplace()</strong>


id: stripslashes
type: function
doc:
<comment>Description:</comment>
  Un-quotes a quoted string
  
  Un-quotes a quoted string.
  
  <strong>stripslashes()</strong> can be used if you aren't inserting this data into a place (such as a database)
  that requires escaping. For example, if you're simply outputting data straight from an HTML form.

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

<comment>Return:</comment>
  <info>string</info>  Returns a string with backslashes stripped off. (<return>\'</return> becomes <return>'</return> and so on.) Double
          backslashes (<return>\\</return>) are made into a single backslash (<return>\</return>).

<comment>See Also:</comment>
   * <strong>addslashes()</strong>
   * <strong>get_magic_quotes_gpc()</strong>


id: stristr
type: function
doc:
<comment>Description:</comment>
  Case-insensitive strstr
  
  Returns all of <strong>$haystack</strong> starting from and including the first occurrence of <strong>$needle</strong> to the end.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>       The string to search in
  <info>string</info>  <strong>$needle</strong>         The string to search for.
                          
                          Prior to PHP 8.0.0, if <strong>$needle</strong> is not a string, it is converted to an
                          integer and applied as the ordinal value of a character. This behavior is
                          deprecated as of PHP 7.3.0, and relying on it is highly discouraged.
                          Depending on the intended behavior, the <strong>$needle</strong> should either be
                          explicitly cast to string, or an explicit call to <strong>chr()</strong> should be
                          performed.
  <info>bool</info>    <strong>$before_needle</strong>  If <info>true</info>, <strong>stristr()</strong> returns the part of the <strong>$haystack</strong> before the first
                          occurrence of the <strong>$needle</strong> (excluding needle).

<comment>Return:</comment>
  <info>string|false</info>  Returns the matched substring. If <strong>$needle</strong> is not found, returns <info>false</info>.

<comment>See Also:</comment>
   * <strong>strstr()</strong>
   * <strong>strrchr()</strong>
   * <strong>stripos()</strong>
   * <strong>strpbrk()</strong>
   * <strong>preg_match()</strong>


id: strlen
type: function
doc:
<comment>Description:</comment>
  Get string length
  
  Returns the length of the given <strong>$string</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The <info>string</info> being measured for length.

<comment>Return:</comment>
  <info>int</info>  The length of the <strong>$string</strong> in bytes.

<comment>See Also:</comment>
   * <strong>count()</strong>
   * <strong>grapheme_strlen()</strong>
   * <strong>iconv_strlen()</strong>
   * <strong>mb_strlen()</strong>


id: strnatcasecmp
type: function
doc:
<comment>Description:</comment>
  Case insensitive string comparisons using a "natural order" algorithm
  
  This function implements a comparison algorithm that orders alphanumeric strings in the way a
  human being would.  The behaviour of this function is similar to <strong>strnatcmp()</strong>, except that the
  comparison is not case sensitive.  For more information see: Martin Pool's Natural Order String
  Comparison page.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  The first string.
  <info>string</info>  <strong>$string2</strong>  The second string.

<comment>Return:</comment>
  <info>int</info>  Similar to other string comparison functions, this one returns <return>-1</return> if <strong>$string1</strong> is less than
       <strong>$string2</strong> <return>1</return> if <strong>$string1</strong> is greater than <strong>$string2</strong>, and <return>0</return> if they are equal.

<comment>See Also:</comment>
   * <strong>preg_match()</strong>
   * <strong>strcmp()</strong>
   * <strong>strcasecmp()</strong>
   * <strong>substr()</strong>
   * <strong>stristr()</strong>
   * <strong>strncasecmp()</strong>
   * <strong>strncmp()</strong>
   * <strong>strstr()</strong>
   * <strong>setlocale()</strong>


id: strnatcmp
type: function
doc:
<comment>Description:</comment>
  String comparisons using a "natural order" algorithm
  
  This function implements a comparison algorithm that orders alphanumeric strings in the way a
  human being would, this is described as a "natural ordering".   Note that this comparison is case
  sensitive.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  The first string.
  <info>string</info>  <strong>$string2</strong>  The second string.

<comment>Return:</comment>
  <info>int</info>  Similar to other string comparison functions, this one returns <return>-1</return> if <strong>$string1</strong> is less than
       <strong>$string2</strong>; <return>1</return> if <strong>$string1</strong> is greater than <strong>$string2</strong>, and <return>0</return> if they are equal.

<comment>See Also:</comment>
   * <strong>preg_match()</strong>
   * <strong>strcasecmp()</strong>
   * <strong>substr()</strong>
   * <strong>stristr()</strong>
   * <strong>strcmp()</strong>
   * <strong>strncmp()</strong>
   * <strong>strncasecmp()</strong>
   * <strong>strnatcasecmp()</strong>
   * <strong>strstr()</strong>
   * <strong>natsort()</strong>
   * <strong>natcasesort()</strong>


id: strncasecmp
type: function
doc:
<comment>Description:</comment>
  Binary safe case-insensitive string comparison of the first n characters
  
  This function is similar to <strong>strcasecmp()</strong>, with the difference that you can specify the (upper
  limit of the) number of characters from each string to be used in the comparison.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  The first string.
  <info>string</info>  <strong>$string2</strong>  The second string.
  <info>int</info>     <strong>$length</strong>   The length of strings to be used in the comparison.

<comment>Return:</comment>
  <info>int</info>  Returns <return>-1</return> if <strong>$string1</strong> is less than <strong>$string2</strong>; <return>1</return> if <strong>$string1</strong> is greater than <strong>$string2</strong>, and <return>0</return>
       if they are equal.

<comment>See Also:</comment>
   * <strong>strncmp()</strong>
   * <strong>preg_match()</strong>
   * <strong>substr_compare()</strong>
   * <strong>strcasecmp()</strong>
   * <strong>stristr()</strong>
   * <strong>substr()</strong>


id: strncmp
type: function
doc:
<comment>Description:</comment>
  Binary safe string comparison of the first n characters
  
  This function is similar to <strong>strcmp()</strong>, with the difference that you can specify the (upper limit of
  the) number of characters from each string to be used in the comparison.
  
  Note that this comparison is case sensitive.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>  The first string.
  <info>string</info>  <strong>$string2</strong>  The second string.
  <info>int</info>     <strong>$length</strong>   Number of characters to use in the comparison.

<comment>Return:</comment>
  <info>int</info>  Returns <return>-1</return> if <strong>$string1</strong> is less than <strong>$string2</strong>; <return>1</return> if <strong>$string1</strong> is greater than <strong>$string2</strong>, and <return>0</return>
       if they are equal.

<comment>See Also:</comment>
   * <strong>strncasecmp()</strong>
   * <strong>preg_match()</strong>
   * <strong>substr_compare()</strong>
   * <strong>strcmp()</strong>
   * <strong>strstr()</strong>
   * <strong>substr()</strong>


id: strpbrk
type: function
doc:
<comment>Description:</comment>
  Search a string for any of a set of characters
  
  <strong>strpbrk()</strong> searches the <strong>$string</strong> string for a <strong>$characters</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      The string where <strong>$characters</strong> is looked for.
  <info>string</info>  <strong>$characters</strong>  This parameter is case sensitive.

<comment>Return:</comment>
  <info>string|false</info>  Returns a string starting from the character found, or <info>false</info> if it is not found.

<comment>See Also:</comment>
   * <strong>strpos()</strong>
   * <strong>strstr()</strong>
   * <strong>preg_match()</strong>


id: strpos
type: function
doc:
<comment>Description:</comment>
  Find the position of the first occurrence of a substring in a string
  
  Find the numeric position of the first occurrence of <strong>$needle</strong> in the <strong>$haystack</strong> string.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>  The string to search in.
  <info>string</info>  <strong>$needle</strong>    The string to search for.
                     
                     Prior to PHP 8.0.0, if <strong>$needle</strong> is not a string, it is converted to an integer
                     and applied as the ordinal value of a character. This behavior is deprecated as
                     of PHP 7.3.0, and relying on it is highly discouraged. Depending on the
                     intended behavior, the <strong>$needle</strong> should either be explicitly cast to string, or
                     an explicit call to <strong>chr()</strong> should be performed.
  <info>int</info>     <strong>$offset</strong>    If specified, search will start this number of characters counted from the
                     beginning of the string. If the offset is negative, the search will start this
                     number of characters counted from the end of the string.

<comment>Return:</comment>
  <info>int|false</info>  Returns the position of where the needle exists relative to the beginning of the
             <strong>$haystack</strong> string (independent of offset). Also note that string positions start at 0,
             and not 1.
             
             Returns <info>false</info> if the needle was not found.
             
             This function may
             return Boolean <info>false</info>, but may also return a non-Boolean value which
             evaluates to <info>false</info>. Please read the section on Booleans for more
             information. Use the ===
             operator for testing the return value of this
             function.

<comment>See Also:</comment>
   * <strong>stripos()</strong>
   * <strong>str_contains()</strong>
   * <strong>str_ends_with()</strong>
   * <strong>str_starts_with()</strong>
   * <strong>strrpos()</strong>
   * <strong>strripos()</strong>
   * <strong>strstr()</strong>
   * <strong>strpbrk()</strong>
   * <strong>substr()</strong>
   * <strong>preg_match()</strong>


id: strptime
type: function
doc:
<comment>Description:</comment>
  Parse a time/date generated with strftime
      
  
  <strong>strptime()</strong> returns an array with the <strong>$timestamp</strong> parsed, or <info>false</info> on error.
  
  Month and weekday names and other language dependent strings respect the current locale set with
  <strong>setlocale()</strong> (<info>LC_TIME</info>).

<comment>Param:</comment>
  <info>string</info>  <strong>$timestamp</strong>  The string to parse (e.g. returned from <strong>strftime()</strong>).
  <info>string</info>  <strong>$format</strong>     The format used in <strong>$timestamp</strong> (e.g. the same as used in <strong>strftime()</strong>). Note that
                      some of the format options available to <strong>strftime()</strong> may not have any effect
                      within <strong>strptime()</strong>; the exact subset that are supported will vary based on the
                      operating system and C library in use.
                      
                      For more information about the format options, read the <strong>strftime()</strong> page.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array or <info>false</info> on failure.
               
               The following parameters are returned in the
               arrayparametersDescription<return>"tm_sec"</return>Seconds after the minute (0-61)<return>"tm_min"</return>Minutes
               after the hour (0-59)<return>"tm_hour"</return>Hour since midnight (0-23)<return>"tm_mday"</return>Day of the month
               (1-31)<return>"tm_mon"</return>Months since January (0-11)<return>"tm_year"</return>Years since 1900<return>"tm_wday"</return>Days since
               Sunday (0-6)<return>"tm_yday"</return>Days since January 1 (0-365)<return>"unparsed"</return>the <strong>$timestamp</strong> part which
               was not recognized using the specified <strong>$format</strong>

<comment>See Also:</comment>
   * IntlDateFormatter::parse
   * DateTime::createFromFormat
   * <strong>checkdate()</strong>
   * <strong>strftime()</strong>
   * <strong>date_parse_from_format()</strong>


id: strrchr
type: function
doc:
<comment>Description:</comment>
  Find the last occurrence of a character in a string
  
  This function returns the portion of <strong>$haystack</strong> which starts at the last occurrence of <strong>$needle</strong> and
  goes until the end of <strong>$haystack</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>       The string to search in
  <info>string</info>  <strong>$needle</strong>         If <strong>$needle</strong> contains more than one character, only the first is used. This
                          behavior is different from that of <strong>strstr()</strong>.
                          
                          Prior to PHP 8.0.0, if <strong>$needle</strong> is not a string, it is converted to an
                          integer and applied as the ordinal value of a character. This behavior is
                          deprecated as of PHP 7.3.0, and relying on it is highly discouraged.
                          Depending on the intended behavior, the <strong>$needle</strong> should either be
                          explicitly cast to string, or an explicit call to <strong>chr()</strong> should be
                          performed.
  <info>bool</info>    <strong>$before_needle</strong>  If <info>true</info>, <strong>strrchr()</strong> returns the part of the <strong>$haystack</strong> before the last
                          occurrence of the <strong>$needle</strong> (excluding the needle).

<comment>Return:</comment>
  <info>string|false</info>  This function returns the portion of string, or <info>false</info> if <strong>$needle</strong> is not found.

<comment>See Also:</comment>
   * <strong>strstr()</strong>
   * <strong>strrpos()</strong>


id: strrev
type: function
doc:
<comment>Description:</comment>
  Reverse a string
  
  Returns <strong>$string</strong>, reversed.

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

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


id: strripos
type: function
doc:
<comment>Description:</comment>
  Find the position of the last occurrence of a case-insensitive substring in a string
  
  Find the numeric position of the last occurrence of <strong>$needle</strong> in the <strong>$haystack</strong> string.
  
  Unlike the <strong>strrpos()</strong>, <strong>strripos()</strong> is case-insensitive.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>  The string to search in.
  <info>string</info>  <strong>$needle</strong>    The string to search for.
                     
                     Prior to PHP 8.0.0, if <strong>$needle</strong> is not a string, it is converted to an integer
                     and applied as the ordinal value of a character. This behavior is deprecated as
                     of PHP 7.3.0, and relying on it is highly discouraged. Depending on the
                     intended behavior, the <strong>$needle</strong> should either be explicitly cast to string, or
                     an explicit call to <strong>chr()</strong> should be performed.
  <info>int</info>     <strong>$offset</strong>    If zero or positive, the search is performed left to right skipping the first
                     <strong>$offset</strong> bytes of the <strong>$haystack</strong>.
                     
                     If negative, the search is performed right to left skipping the last <strong>$offset</strong>
                     bytes of the <strong>$haystack</strong> and searching for the first occurrence of <strong>$needle</strong>.  This
                     is effectively looking for the last occurrence of <strong>$needle</strong> before the last
                     <strong>$offset</strong> bytes.
                     
                     This is effectively looking for the last occurrence of <strong>$needle</strong> before the last
                     <strong>$offset</strong> bytes.

<comment>Return:</comment>
  <info>int|false</info>  Returns the position where the needle exists relative to the beginnning of the
             <strong>$haystack</strong> string (independent of search direction or offset).  String positions start
             at 0, and not 1.
             
             String positions start at 0, and not 1.
             
             Returns <info>false</info> if the needle was not found.
             
             This function may
             return Boolean <info>false</info>, but may also return a non-Boolean value which
             evaluates to <info>false</info>. Please read the section on Booleans for more
             information. Use the ===
             operator for testing the return value of this
             function.

<comment>See Also:</comment>
   * <strong>strpos()</strong>
   * <strong>stripos()</strong>
   * <strong>strrpos()</strong>
   * <strong>strrchr()</strong>
   * <strong>stristr()</strong>
   * <strong>substr()</strong>


id: strrpos
type: function
doc:
<comment>Description:</comment>
  Find the position of the last occurrence of a substring in a string
  
  Find the numeric position of the last occurrence of <strong>$needle</strong> in the <strong>$haystack</strong> string.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>  The string to search in.
  <info>string</info>  <strong>$needle</strong>    The string to search for.
                     
                     Prior to PHP 8.0.0, if <strong>$needle</strong> is not a string, it is converted to an integer
                     and applied as the ordinal value of a character. This behavior is deprecated as
                     of PHP 7.3.0, and relying on it is highly discouraged. Depending on the
                     intended behavior, the <strong>$needle</strong> should either be explicitly cast to string, or
                     an explicit call to <strong>chr()</strong> should be performed.
  <info>int</info>     <strong>$offset</strong>    If zero or positive, the search is performed left to right skipping the first
                     <strong>$offset</strong> bytes of the <strong>$haystack</strong>.
                     
                     If negative, the search starts <strong>$offset</strong> bytes from the right instead of from the
                     beginning of <strong>$haystack</strong>. The search is performed right to left, searching for
                     the first occurrence of <strong>$needle</strong> from the selected byte.  This is effectively
                     looking for the last occurrence of <strong>$needle</strong> at or before the last <strong>$offset</strong> bytes.
                     
                     This is effectively looking for the last occurrence of <strong>$needle</strong> at or before the
                     last <strong>$offset</strong> bytes.

<comment>Return:</comment>
  <info>int|false</info>  Returns the position where the needle exists relative to the beginning of the <strong>$haystack</strong>
             string (independent of search direction or offset).  String positions start at 0, and
             not 1.
             
             String positions start at 0, and not 1.
             
             Returns <info>false</info> if the needle was not found.
             
             This function may
             return Boolean <info>false</info>, but may also return a non-Boolean value which
             evaluates to <info>false</info>. Please read the section on Booleans for more
             information. Use the ===
             operator for testing the return value of this
             function.

<comment>See Also:</comment>
   * <strong>strpos()</strong>
   * <strong>stripos()</strong>
   * <strong>strripos()</strong>
   * <strong>strrchr()</strong>
   * <strong>substr()</strong>


id: strspn
type: function
doc:
<comment>Description:</comment>
  Finds the length of the initial segment of a string consisting
     entirely of characters contained within a given mask
    
  
  Finds the length of the initial segment of <strong>$string</strong> that contains only characters from <strong>$characters</strong>.
  
  If <strong>$offset</strong> and <strong>$length</strong> are omitted, then all of <strong>$string</strong> will be examined. If they are included,
  then the effect will be the same as calling <return>strspn(substr($string, $offset, $length), $characters)</return>
  (see  for more information).
  
  The line of code: 
  ]]> will assign <return>2</return> to $var, because the string "42" is the initial segment of <strong>$string</strong> that consists
  only of characters contained within "1234567890".

<comment>Param:</comment>
  <info>string</info>    <strong>$string</strong>      The string to examine.
  <info>string</info>    <strong>$characters</strong>  The list of allowable characters.
  <info>int</info>       <strong>$offset</strong>      The position in <strong>$string</strong> to start searching.
                         
                         If <strong>$offset</strong> is given and is non-negative, then <strong>strspn()</strong> will begin examining
                         <strong>$string</strong> at the <strong>$offset</strong>'th position. For instance, in the string '<return>abcdef</return>',
                         the character at position <return>0</return> is '<return>a</return>', the character at position <return>2</return> is '<return>c</return>', and
                         so forth.
                         
                         If <strong>$offset</strong> is given and is negative, then <strong>strspn()</strong> will begin examining
                         <strong>$string</strong> at the <strong>$offset</strong>'th position from the end of <strong>$string</strong>.
  <info>int|null</info>  <strong>$length</strong>      The length of the segment from <strong>$string</strong> to examine.
                         
                         If <strong>$length</strong> is given and is non-negative, then <strong>$string</strong> will be examined for
                         <strong>$length</strong> characters after the starting position.
                         
                         If <strong>$length</strong> is given and is negative, then <strong>$string</strong> will be examined from the
                         starting position up to <strong>$length</strong> characters from the end of <strong>$string</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the length of the initial segment of <strong>$string</strong> which consists entirely of characters in
       <strong>$characters</strong>.
       
       When a <strong>$offset</strong> parameter is set, the returned length is counted starting from this position,
       not from the beginning of <strong>$string</strong>.

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


id: strstr
type: function
doc:
<comment>Description:</comment>
  Find the first occurrence of a string
  
  Returns part of <strong>$haystack</strong> string starting from and including the first occurrence of <strong>$needle</strong> to
  the end of <strong>$haystack</strong>.
  
  This function is case-sensitive. For case-insensitive searches, use <strong>stristr()</strong>.
  
  If you only want to determine if a particular <strong>$needle</strong> occurs within <strong>$haystack</strong>, use the faster and
  less memory intensive function <strong>strpos()</strong> instead.

<comment>Param:</comment>
  <info>string</info>  <strong>$haystack</strong>       The input string.
  <info>string</info>  <strong>$needle</strong>         The string to search for.
                          
                          Prior to PHP 8.0.0, if <strong>$needle</strong> is not a string, it is converted to an
                          integer and applied as the ordinal value of a character. This behavior is
                          deprecated as of PHP 7.3.0, and relying on it is highly discouraged.
                          Depending on the intended behavior, the <strong>$needle</strong> should either be
                          explicitly cast to string, or an explicit call to <strong>chr()</strong> should be
                          performed.
  <info>bool</info>    <strong>$before_needle</strong>  If <info>true</info>, <strong>strstr()</strong> returns the part of the <strong>$haystack</strong> before the first
                          occurrence of the <strong>$needle</strong> (excluding the needle).

<comment>Return:</comment>
  <info>string|false</info>  Returns the portion of string, or <info>false</info> if <strong>$needle</strong> is not found.

<comment>See Also:</comment>
   * <strong>stristr()</strong>
   * <strong>strrchr()</strong>
   * <strong>strpos()</strong>
   * <strong>strpbrk()</strong>
   * <strong>preg_match()</strong>


id: strtok
type: function
doc:
<comment>Description:</comment>
  Tokenize string
  
  Alternative signature (not supported with named arguments):
  
  <strong>strtok()</strong> splits a string (<strong>$string</strong>) into smaller strings (tokens), with each token being delimited
  by any character from <strong>$token</strong>. That is, if you have a string like "This is an example string" you
  could tokenize this string into its individual words by using the space character as the <strong>$token</strong>.
  
  Note that only the first call to strtok uses the <strong>$string</strong> argument. Every subsequent call to strtok
  only needs the <strong>$token</strong> to use, as it keeps track of where it is in the current string.  To start
  over, or to tokenize a new string you simply call strtok with the <strong>$string</strong> argument again to
  initialize it.  Note that you may put multiple tokens in the <strong>$token</strong> parameter.  The string will be
  tokenized when any one of the characters in the <strong>$token</strong> argument is found.
  
  This function behaves slightly different from what one may expect being familiar with <strong>explode()</strong>.
  First, a sequence of two or more contiguous <strong>$token</strong> characters in the parsed string is considered
  to be a single delimiter.  Also, a <strong>$token</strong> situated at the start or end of the string is ignored.
  For example, if a string <return>";aaa;;bbb;"</return> is used, successive calls to <strong>strtok()</strong> with <return>";"</return> as a <strong>$token</strong>
  would return strings "aaa" and "bbb", and then <info>false</info>. As a result, the string will be split into
  only two elements, while <return>explode(";", $string)</return> would return an array of 5 elements.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The <info>string</info> being split up into smaller strings (tokens).
  <info>string</info>  <strong>$token</strong>   The delimiter used when splitting up <strong>$string</strong>.

<comment>Return:</comment>
  <info>string|false</info>  A <info>string</info> token, or <info>false</info> if no more tokens are available.

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


id: strtolower
type: function
doc:
<comment>Description:</comment>
  Make a string lowercase
  
  Returns <strong>$string</strong> with all ASCII alphabetic characters converted to lowercase.
  
  Bytes in the range <return>"A"</return> (0x41) to <return>"Z"</return> (0x5a) will be converted to the corresponding lowercase
  letter by adding 32 to each byte value.
  
  This can be used to convert ASCII characters within strings encoded with UTF-8, since multibyte
  UTF-8 characters will be ignored. To convert multibyte non-ASCII characters, use <strong>mb_strtolower()</strong>.

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

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

<comment>See Also:</comment>
   * <strong>strtoupper()</strong>
   * <strong>ucfirst()</strong>
   * <strong>ucwords()</strong>
   * <strong>mb_strtolower()</strong>


id: strtotime
type: function
doc:
<comment>Description:</comment>
  Parse about any English textual datetime description into a Unix timestamp
  
  The function expects to be given a string containing an English date format and will try to parse
  that format into a Unix timestamp (the number of seconds since January 1 1970 00:00:00 UTC),
  relative to the timestamp given in <strong>$baseTimestamp</strong>, or the current time if <strong>$baseTimestamp</strong> is not
  supplied.  The date string parsing is defined in Date and Time Formats, and has several subtle
  considerations.  Reviewing the full details there is strongly recommended.
  
  The Unix timestamp that this function returns does not contain information about time zones. In
  order to do calculations with date/time information, you should use the more capable
  <class>DateTimeImmutable</class>.
  
  Each parameter of this function uses the default time zone unless a time zone is specified in that
  parameter.  Be careful not to use different time zones in each parameter unless that is intended.
  See <strong>date_default_timezone_get()</strong> on the various ways to define the default time zone.

<comment>Param:</comment>
  <info>string</info>    <strong>$datetime</strong>       A date/time string. Valid formats are explained in Date and Time
                            Formats.
  <info>int|null</info>  <strong>$baseTimestamp</strong>  The timestamp which is used as a base for the calculation of relative
                            dates.

<comment>Return:</comment>
  <info>int|false</info>  Returns a timestamp on success, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <class>DateTimeImmutable</class>
   * DateTimeImmutable::createFromFormat
   * Date and Time Formats
   * <strong>checkdate()</strong>
   * <strong>strptime()</strong>


id: strtoupper
type: function
doc:
<comment>Description:</comment>
  Make a string uppercase
  
  Returns <strong>$string</strong> with all ASCII alphabetic characters converted to uppercase.
  
  Bytes in the range <return>"a"</return> (0x61) to <return>"z"</return> (0x7a) will be converted to the corresponding uppercase
  letter by subtracting 32 from each byte value.
  
  This can be used to convert ASCII characters within strings encoded with UTF-8, since multibyte
  UTF-8 characters will be ignored. To convert multibyte non-ASCII characters, use <strong>mb_strtoupper()</strong>.

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

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

<comment>See Also:</comment>
   * <strong>strtolower()</strong>
   * <strong>ucfirst()</strong>
   * <strong>ucwords()</strong>
   * <strong>mb_strtoupper()</strong>


id: strtr
type: function
doc:
<comment>Description:</comment>
  Translate characters or replace substrings
  
  Alternative signature (not supported with named arguments):
  
  If given three arguments, this function returns a copy of <strong>$string</strong> where all occurrences of each
  (single-byte) character in <strong>$from</strong> have been translated to the corresponding character in <strong>$to</strong>, i.e.,
  every occurrence of <return>$from[$n]</return> has been replaced with <return>$to[$n]</return>, where <return>$n</return> is a valid offset in both
  arguments.
  
  If <strong>$from</strong> and <strong>$to</strong> have different lengths, the extra characters in the longer of the two are
  ignored. The length of <strong>$string</strong> will be the same as the return value's.
  
  If given two arguments, the second should be an <info>array</info> in the form <return>array('from' =&gt; 'to', ...)</return>.
  The return value is a <info>string</info> where all the occurrences of the array keys have been replaced by the
  corresponding values. The longest keys will be tried first. Once a substring has been replaced,
  its new value will not be searched again.
  
  In this case, the keys and the values may have any length, provided that there is no empty key;
  additionally, the length of the return value may differ from that of <strong>$string</strong>. However, this
  function will be the most efficient when all the keys have the same size.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>         The <info>string</info> being translated.
  <info>string</info>  <strong>$from</strong>           The <info>string</info> being translated to <strong>$to</strong>.
  <info>string</info>  <strong>$to</strong>             The <info>string</info> replacing <strong>$from</strong>.
  <info>array</info>   <strong>$replace_pairs</strong>  The <strong>$replace_pairs</strong> parameter may be used instead of  <strong>$to</strong> and <strong>$from</strong>, in
                          which case it's an <info>array</info> in the form <return>array('from' =&gt; 'to', ...)</return>.
                          
                          If <strong>$replace_pairs</strong> contains a key which is an empty <info>string</info> (<return>""</return>), the
                          element is ignored; as of PHP 8.0.0 <info>E_WARNING</info> is raised in this case.

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

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


id: strval
type: function
doc:
<comment>Description:</comment>
  Get string value of a variable
  
  Get the string value of a variable. See the documentation on <info>string</info> for more information on
  converting to string.
  
  This function performs no formatting on the returned value. If you are looking for a way to format
  a numeric value as a string, please see <strong>sprintf()</strong> or <strong>number_format()</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable that is being converted to a <info>string</info>.
                 
                 <strong>$value</strong> may be any scalar type, <info>null</info>, or an <info>object</info> that implements the __toString()
                 method. You cannot use <strong>strval()</strong> on arrays or on objects that do not implement the
                 __toString() method.

<comment>Return:</comment>
  <info>string</info>  The <info>string</info> value of <strong>$value</strong>.

<comment>See Also:</comment>
   * <strong>boolval()</strong>
   * <strong>floatval()</strong>
   * <strong>intval()</strong>
   * <strong>settype()</strong>
   * <strong>sprintf()</strong>
   * <strong>number_format()</strong>
   * Type juggling
   * __toString()


id: substr
type: function
doc:
<comment>Description:</comment>
  Return part of a string
  
  Returns the portion of <strong>$string</strong> specified by the <strong>$offset</strong> and <strong>$length</strong> parameters.

<comment>Param:</comment>
  <info>string</info>    <strong>$string</strong>  The input string.
  <info>int</info>       <strong>$offset</strong>  If <strong>$offset</strong> is non-negative, the returned string will start at the <strong>$offset</strong>'th
                     position in <strong>$string</strong>, counting from zero. For instance, in the string '<return>abcdef</return>',
                     the character at position <return>0</return> is '<return>a</return>', the character at position <return>2</return> is '<return>c</return>', and so
                     forth.
                     
                     If <strong>$offset</strong> is negative, the returned string will start at the <strong>$offset</strong>'th
                     character from the end of <strong>$string</strong>.
                     
                     If <strong>$string</strong> is less than <strong>$offset</strong> characters long, an empty string will be
                     returned.
                     
                     Using a negative <strong>$offset</strong>
                     ]]>
  <info>int|null</info>  <strong>$length</strong>  If <strong>$length</strong> is given and is positive, the string returned will contain at most
                     <strong>$length</strong> characters beginning from <strong>$offset</strong> (depending on the length of <strong>$string</strong>).
                     
                     If <strong>$length</strong> is given and is negative, then that many characters will be omitted
                     from the end of <strong>$string</strong> (after the start position has been calculated when a
                     <strong>$offset</strong> is negative).  If <strong>$offset</strong> denotes the position of this truncation or
                     beyond, an empty string will be returned.
                     
                     If <strong>$length</strong> is given and is <return>0</return>, an empty string will be returned.
                     
                     If <strong>$length</strong> is omitted or <info>null</info>, the substring starting from <strong>$offset</strong> until the
                     end of the string will be returned.

<comment>Return:</comment>
  <info>string</info>  Returns the extracted part of <strong>$string</strong>, or an empty string.

<comment>See Also:</comment>
   * <strong>strrchr()</strong>
   * <strong>substr_replace()</strong>
   * <strong>preg_match()</strong>
   * <strong>trim()</strong>
   * <strong>mb_substr()</strong>
   * <strong>wordwrap()</strong>
   * String access and modification by character


id: substr_compare
type: function
doc:
<comment>Description:</comment>
  Binary safe comparison of two strings from an offset, up to length characters
  
  <strong>substr_compare()</strong> compares <strong>$haystack</strong> from position <strong>$offset</strong> with <strong>$needle</strong> up to <strong>$length</strong> characters.

<comment>Param:</comment>
  <info>string</info>    <strong>$haystack</strong>          The main string being compared.
  <info>string</info>    <strong>$needle</strong>            The secondary string being compared.
  <info>int</info>       <strong>$offset</strong>            The start position for the comparison. If negative, it starts
                               counting from the end of the string.
  <info>int|null</info>  <strong>$length</strong>            The length of the comparison. The default value is the largest of the
                               length of the <strong>$needle</strong> compared to the length of <strong>$haystack</strong> minus the
                               <strong>$offset</strong>.
  <info>bool</info>      <strong>$case_insensitive</strong>  If <strong>$case_insensitive</strong> is <info>true</info>, comparison is case insensitive.

<comment>Return:</comment>
  <info>int</info>  Returns <return>-1</return> if <strong>$haystack</strong> from position <strong>$offset</strong> is less than <strong>$needle</strong>, <return>1</return> if it is greater than
       <strong>$needle</strong>, and <return>0</return> if they are equal. If <strong>$offset</strong> is equal to (prior to PHP 7.2.18, 7.3.5) or
       greater than the length of <strong>$haystack</strong>, or the <strong>$length</strong> is set and is less than 0,
       <strong>substr_compare()</strong> prints a warning and returns <info>false</info>.

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


id: substr_count
type: function
doc:
<comment>Description:</comment>
  Count the number of substring occurrences
  
  <strong>substr_count()</strong> returns the number of times the <strong>$needle</strong> substring occurs in the <strong>$haystack</strong> string.
  Please note that <strong>$needle</strong> is case sensitive.
  
  This function doesn't count overlapped substrings. See the example below!

<comment>Param:</comment>
  <info>string</info>    <strong>$haystack</strong>  The string to search in
  <info>string</info>    <strong>$needle</strong>    The substring to search for
  <info>int</info>       <strong>$offset</strong>    The offset where to start counting. If the offset is negative, counting
                       starts from the end of the string.
  <info>int|null</info>  <strong>$length</strong>    The maximum length after the specified offset to search for the substring. It
                       outputs a warning if the offset plus the length is greater than the <strong>$haystack</strong>
                       length. A negative length counts from the end of <strong>$haystack</strong>.

<comment>Return:</comment>
  <info>int</info>  This function returns an <info>int</info>.

<comment>See Also:</comment>
   * <strong>count_chars()</strong>
   * <strong>strpos()</strong>
   * <strong>substr()</strong>
   * <strong>strstr()</strong>


id: substr_replace
type: function
doc:
<comment>Description:</comment>
  Replace text within a portion of a string
  
  <strong>substr_replace()</strong> replaces a copy of <strong>$string</strong> delimited by the <strong>$offset</strong> and (optionally) <strong>$length</strong>
  parameters with the string given in <strong>$replace</strong>.

<comment>Param:</comment>
  <info>array|string</info>    <strong>$string</strong>   The input string.
                            
                            An <info>array</info> of <info>string</info>s can be provided, in which case the replacements will
                            occur on each string in turn. In this case, the <strong>$replace</strong>, <strong>$offset</strong> and
                            <strong>$length</strong> parameters may be provided either as scalar values to be applied
                            to each input string in turn, or as <info>array</info>s, in which case the
                            corresponding array element will be used for each input string.
  <info>array|string</info>    <strong>$replace</strong>  The replacement string.
  <info>array|int</info>       <strong>$offset</strong>   If <strong>$offset</strong> is non-negative, the replacing will begin at the <strong>$offset</strong>'th
                            offset into <strong>$string</strong>.
                            
                            If <strong>$offset</strong> is negative, the replacing will begin at the <strong>$offset</strong>'th
                            character from the end of <strong>$string</strong>.
  <info>array|int|null</info>  <strong>$length</strong>   If given and is positive, it represents the length of the portion of
                            <strong>$string</strong> which is to be replaced. If it is negative, it represents the
                            number of characters from the end of <strong>$string</strong> at which to stop replacing.
                            If it is not given, then it will default to strlen( <strong>$string</strong> ); i.e. end
                            the replacing at the end of <strong>$string</strong>. Of course, if <strong>$length</strong> is zero then
                            this function will have the effect of inserting <strong>$replace</strong> into <strong>$string</strong> at
                            the given <strong>$offset</strong> offset.

<comment>Return:</comment>
  <info>string|array</info>  The result string is returned. If <strong>$string</strong> is an array then array is returned.

<comment>See Also:</comment>
   * <strong>str_replace()</strong>
   * <strong>substr()</strong>
   * String access and modification by character


id: svn_add
type: function
doc:
<comment>Description:</comment>
  Schedules the addition of an item in a working directory
  
  Adds the file, directory or symbolic link at <strong>$path</strong> to the working directory. The item will be
  added to the repository the next time you call <strong>svn_commit()</strong> on the working copy.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>       Path of item to add.
                      
                      Relative paths will be resolved as if the current working directory was the
                      one that contains the PHP binary. To use the calling script's working
                      directory, use <strong>realpath()</strong> or dirname(__FILE__).
  <info>bool</info>    <strong>$recursive</strong>  If item is directory, whether or not to recursively add all of its contents.
                      Default is <info>true</info>
  <info>bool</info>    <strong>$force</strong>      If true, Subversion will recurse into already versioned directories in order
                      to add unversioned files that may be hiding in those directories. Default is
                      <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>
   * SVN documentation on svn add


id: svn_auth_get_parameter
type: function
doc:
<comment>Description:</comment>
  Retrieves authentication parameter
  
  Retrieves authentication parameter at <strong>$key</strong>. For a list of valid keys and their meanings, consult
  the authentication constants list.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  String key name. Use the authentication constants defined by this extension to
                specify a key.

<comment>Return:</comment>
  <info>string</info>  Returns the string value of the parameter at <strong>$key</strong>; returns <info>null</info> if parameter does not
          exist.

<comment>See Also:</comment>
   * <strong>svn_auth_set_parameter()</strong>
   * Authentication constants


id: svn_auth_set_parameter
type: function
doc:
<comment>Description:</comment>
  Sets an authentication parameter
  
  Sets authentication parameter at <strong>$key</strong> to <strong>$value</strong>. For a list of valid keys and their meanings,
  consult the authentication constants list.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>    String key name. Use the authentication constants defined by this extension to
                  specify a key.
  <info>string</info>  <strong>$value</strong>  String value to set to parameter at key. Format of value varies with the
                  parameter.

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

<comment>See Also:</comment>
   * <strong>svn_auth_get_parameter()</strong>
   * Authentication constants


id: svn_blame
type: function
doc:
<comment>Description:</comment>
  Get the SVN blame for a file
  
  Get the SVN blame of a file from a repository URL.

<comment>Param:</comment>
  <info>string</info>  <strong>$repository_url</strong>  The repository URL.
  <info>int</info>     <strong>$revision_no</strong>     The revision number.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of SVN blame information separated by line which includes the revision number,
         line number, line of code, author, and date.

<comment>See Also:</comment>
   * <strong>svn_diff()</strong>
   * <strong>svn_logs()</strong>
   * <strong>svn_status()</strong>


id: svn_cat
type: function
doc:
<comment>Description:</comment>
  Returns the contents of a file in a repository
  
  Returns the contents of the URL <strong>$repos_url</strong> to a file in the repository, optionally at revision
  number <strong>$revision_no</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$repos_url</strong>    String URL path to item in a repository.
  <info>int</info>     <strong>$revision_no</strong>  Integer revision number of item to retrieve, default is the HEAD revision.

<comment>Return:</comment>
  <info>string</info>  Returns the string contents of the item from the repository on success, and <info>false</info> on
          failure.

<comment>See Also:</comment>
   * <strong>svn_list()</strong>
   * SVN documentation on svn cat


id: svn_checkout
type: function
doc:
<comment>Description:</comment>
  Checks out a working copy from the repository
  
  Checks out a working copy from the repository at <strong>$repos</strong> to <strong>$targetpath</strong> at revision <strong>$revision</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$repos</strong>       String URL path to directory in repository to check out.
  <info>string</info>  <strong>$targetpath</strong>  String local path to directory to check out in to
                       
                       Relative paths will be resolved as if the current working directory was the
                       one that contains the PHP binary. To use the calling script's working
                       directory, use <strong>realpath()</strong> or dirname(__FILE__).
  <info>int</info>     <strong>$revision</strong>    Integer revision number of repository to check out. Default is HEAD, the most
                       recent revision.
  <info>int</info>     <strong>$flags</strong>       Any combination of <info>SVN_NON_RECURSIVE</info> and <info>SVN_IGNORE_EXTERNALS</info>.

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

<comment>See Also:</comment>
   * <strong>svn_add()</strong>
   * <strong>svn_commit()</strong>
   * <strong>svn_status()</strong>
   * <strong>svn_update()</strong>
   * SVN documentation on svn checkout


id: svn_cleanup
type: function
doc:
<comment>Description:</comment>
  Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
  
  Recursively cleanup working copy directory <strong>$workingdir</strong>, finishing any incomplete operations and
  removing working copy locks. Use when a working copy is in limbo and needs to be usable again.

<comment>Param:</comment>
  <info>string</info>  <strong>$workingdir</strong>  String path to local working directory to cleanup
                       
                       Relative paths will be resolved as if the current working directory was the
                       one that contains the PHP binary. To use the calling script's working
                       directory, use <strong>realpath()</strong> or dirname(__FILE__).

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

<comment>See Also:</comment>
   * <strong>update()</strong>
   * SVN documentation on svn cleanup


id: svn_client_version
type: function
doc:
<comment>Description:</comment>
  Returns the version of the SVN client libraries
  
  Returns the version of the SVN client libraries

<comment>Return:</comment>
  <info>string</info>  String version number, usually in form of x.y.z.


id: svn_commit
type: function
doc:
<comment>Description:</comment>
  Sends changes from the local working copy to the repository
  
  Commits changes made in the local working copy files enumerated in the <strong>$targets</strong> array to the
  repository, with the log message <strong>$log</strong>. Directories in the <strong>$targets</strong> array will be recursively
  committed unless <strong>$recursive</strong> is set to <info>false</info>.
  
  This function does not have any parameters for specifying authentication, so a username and
  password must be set using <strong>svn_auth_set_parameter()</strong>

<comment>Param:</comment>
  <info>string</info>  <strong>$log</strong>        String log text to commit
  <info>array</info>   <strong>$targets</strong>    Array of local paths of files to be committed
                      
                      This parameter must be an array, a string for a single target is not
                      acceptable.
                      
                      Relative paths will be resolved as if the current working directory was the
                      one that contains the PHP binary. To use the calling script's working
                      directory, use <strong>realpath()</strong> or dirname(__FILE__).
  <info>bool</info>    <strong>$recursive</strong>  Boolean flag to disable recursive committing of directories in the <strong>$targets</strong>
                      array. Default is <info>true</info>.

<comment>Return:</comment>
  <info>array</info>  Returns array in form of:
         
         Returns <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>svn_auth_set_parameter()</strong>
   * SVN documentation on svn commit


id: svn_delete
type: function
doc:
<comment>Description:</comment>
  Delete items from a working copy or repository
  
  Deletes the file, directory or symbolic link at <strong>$path</strong> from the working directory. The item will be
  deleted from the repository the next time you call <strong>svn_commit()</strong> on the working copy.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>   Path of item to delete.
                  
                  Relative paths will be resolved as if the current working directory was the one
                  that contains the PHP binary. To use the calling script's working directory, use
                  <strong>realpath()</strong> or dirname(__FILE__).
  <info>bool</info>    <strong>$force</strong>  If <info>true</info>, the file will be deleted even if it has local modifications. Otherwise,
                  local modifications will result in a failure. Default is <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>
   * SVN documentation on svn
    delete


id: svn_diff
type: function
doc:
<comment>Description:</comment>
  Recursively diffs two paths
  
  Recursively diffs two paths, <strong>$path1</strong> and <strong>$path2</strong>.
  
  This is not a general-purpose diff utility. Only local files that are versioned may be diffed:
  other files will fail.

<comment>Param:</comment>
  <info>string</info>  <strong>$path1</strong>  First path to diff. This can be a URL to a file/directory in an SVN repository or
                  a local file/directory path.
                  
                  Relative paths will be resolved as if the current working directory was the one
                  that contains the PHP binary. To use the calling script's working directory, use
                  <strong>realpath()</strong> or dirname(__FILE__).
                  
                  If a local file path has only backslashes and no forward slashes, this extension
                  will fail to find the path. Always replace all backslashes with forward slashes
                  when using this function.
  <info>int</info>     <strong>$rev1</strong>   First path's revision number. Use <info>SVN_REVISION_HEAD</info> to specify the most recent
                  revision.
  <info>string</info>  <strong>$path2</strong>  Second path to diff. See <strong>$path1</strong> for description.
  <info>int</info>     <strong>$rev2</strong>   Second path's revision number. See <strong>$rev1</strong> for description.

<comment>Return:</comment>
  <info>array</info>  Returns an array-list consisting of two streams: the first is the diff output and the
         second contains error stream output. The streams can be read using <strong>fread()</strong>. Returns <info>false</info>
         or <info>null</info> on error.
         
         The diff output will, by default, be in the form of Subversion's custom unified diff
         format, but an external diff engine may be used depending on Subversion's configuration.

<comment>See Also:</comment>
   * SVN documentation on svn diff


id: svn_export
type: function
doc:
<comment>Description:</comment>
  Export the contents of a SVN directory
  
  Export the contents of either a working copy or repository into a 'clean' directory.

<comment>Param:</comment>
  <info>string</info>  <strong>$frompath</strong>      The path to the current repository.
  <info>string</info>  <strong>$topath</strong>        The path to the new repository.
  <info>bool</info>    <strong>$working_copy</strong>  If <info>true</info>, it will export uncommitted files from the working copy.

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

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


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$txn</strong>  

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


id: svn_fs_apply_text
type: function
doc:
<comment>Description:</comment>
  Creates and returns a stream that will be used to replace
  
  This function is
  currently not documented; only its argument list is available.
  
  Creates and returns a stream that will be used to replace

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


id: svn_fs_begin_txn2
type: function
doc:
<comment>Description:</comment>
  Create a new transaction
  
  This function is
  currently not documented; only its argument list is available.
  
  Create a new transaction

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


id: svn_fs_change_node_prop
type: function
doc:
<comment>Description:</comment>
  Return true if everything is ok, false otherwise
  
  This function is
  currently not documented; only its argument list is available.
  
  Return true if everything is ok, false otherwise

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


id: svn_fs_check_path
type: function
doc:
<comment>Description:</comment>
  Determines what kind of item lives at path in a given repository fsroot
  
  This function is
  currently not documented; only its argument list is available.
  
  Determines what kind of item lives at path in a given repository fsroot

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


id: svn_fs_contents_changed
type: function
doc:
<comment>Description:</comment>
  Return true if content is different, false otherwise
  
  This function is
  currently not documented; only its argument list is available.
  
  Return true if content is different, false otherwise

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


id: svn_fs_copy
type: function
doc:
<comment>Description:</comment>
  Copies a file or a directory
  
  This function is
  currently not documented; only its argument list is available.
  
  Copies a file or a directory.

<comment>Param:</comment>
  <info>resource</info>  <strong>$from_root</strong>  
  <info>string</info>    <strong>$from_path</strong>  
  <info>resource</info>  <strong>$to_root</strong>    
  <info>string</info>    <strong>$to_path</strong>    

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


id: svn_fs_delete
type: function
doc:
<comment>Description:</comment>
  Deletes a file or a directory
  
  This function is
  currently not documented; only its argument list is available.
  
  Deletes a file or a directory.

<comment>Param:</comment>
  <info>resource</info>  <strong>$root</strong>  
  <info>string</info>    <strong>$path</strong>  

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


id: svn_fs_dir_entries
type: function
doc:
<comment>Description:</comment>
  Enumerates the directory entries under path; returns a hash of dir names to file type
  
  This function is
  currently not documented; only its argument list is available.
  
  Enumerates the directory entries under path; returns a hash of dir names to file type

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


id: svn_fs_file_contents
type: function
doc:
<comment>Description:</comment>
  Returns a stream to access the contents of a file from a given version of the fs
  
  This function is
  currently not documented; only its argument list is available.
  
  Returns a stream to access the contents of a file from a given version of the fs

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


id: svn_fs_file_length
type: function
doc:
<comment>Description:</comment>
  Returns the length of a file from a given version of the fs
  
  This function is
  currently not documented; only its argument list is available.
  
  Returns the length of a file from a given version of the fs

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


id: svn_fs_is_dir
type: function
doc:
<comment>Description:</comment>
  Determines if a path points to a directory
  
  This function is
  currently not documented; only its argument list is available.
  
  Determines if the given path points to a directory.

<comment>Param:</comment>
  <info>resource</info>  <strong>$root</strong>  
  <info>string</info>    <strong>$path</strong>  

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the path points to a directory, <info>false</info> otherwise.


id: svn_fs_is_file
type: function
doc:
<comment>Description:</comment>
  Determines if a path points to a file
  
  This function is
  currently not documented; only its argument list is available.
  
  Determines if the given path points to a file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$root</strong>  
  <info>string</info>    <strong>$path</strong>  

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the path points to a file, <info>false</info> otherwise.


id: svn_fs_make_dir
type: function
doc:
<comment>Description:</comment>
  Creates a new empty directory
  
  This function is
  currently not documented; only its argument list is available.
  
  Creates a new empty directory.

<comment>Param:</comment>
  <info>resource</info>  <strong>$root</strong>  
  <info>string</info>    <strong>$path</strong>  

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


id: svn_fs_make_file
type: function
doc:
<comment>Description:</comment>
  Creates a new empty file
  
  This function is
  currently not documented; only its argument list is available.
  
  Creates a new empty file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$root</strong>  
  <info>string</info>    <strong>$path</strong>  

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


id: svn_fs_node_created_rev
type: function
doc:
<comment>Description:</comment>
  Returns the revision in which path under fsroot was created
  
  This function is
  currently not documented; only its argument list is available.
  
  Returns the revision in which path under fsroot was created

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


id: svn_fs_node_prop
type: function
doc:
<comment>Description:</comment>
  Returns the value of a property for a node
  
  This function is
  currently not documented; only its argument list is available.
  
  Returns the value of a property for a node

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


id: svn_fs_props_changed
type: function
doc:
<comment>Description:</comment>
  Return true if props are different, false otherwise
  
  This function is
  currently not documented; only its argument list is available.
  
  Return true if props are different, false otherwise

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


id: svn_fs_revision_prop
type: function
doc:
<comment>Description:</comment>
  Fetches the value of a named property
  
  This function is
  currently not documented; only its argument list is available.
  
  Fetches the value of a named property

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


id: svn_fs_revision_root
type: function
doc:
<comment>Description:</comment>
  Get a handle on a specific version of the repository root
  
  This function is
  currently not documented; only its argument list is available.
  
  Get a handle on a specific version of the repository root

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


id: svn_fs_txn_root
type: function
doc:
<comment>Description:</comment>
  Creates and returns a transaction root
  
  This function is
  currently not documented; only its argument list is available.
  
  Creates and returns a transaction root

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


id: svn_fs_youngest_rev
type: function
doc:
<comment>Description:</comment>
  Returns the number of the youngest revision in the filesystem
  
  This function is
  currently not documented; only its argument list is available.
  
  Returns the number of the youngest revision in the filesystem

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


id: svn_import
type: function
doc:
<comment>Description:</comment>
  Imports an unversioned path into a repository
  
  Commits unversioned <strong>$path</strong> into repository at <strong>$url</strong>. If <strong>$path</strong> is a directory and <strong>$nonrecursive</strong> is
  <info>false</info>,  the directory will be imported recursively.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>          Path of file or directory to import.
                         
                         Relative paths will be resolved as if the current working directory was the
                         one that contains the PHP binary. To use the calling script's working
                         directory, use <strong>realpath()</strong> or dirname(__FILE__).
  <info>string</info>  <strong>$url</strong>           Repository URL to import into.
  <info>bool</info>    <strong>$nonrecursive</strong>  Whether or not to refrain from recursively processing directories.

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

<comment>See Also:</comment>
   * <strong>svn_add()</strong>
   * SVN documentation for svn import


id: svn_log
type: function
doc:
<comment>Description:</comment>
  Returns the commit log messages of a repository URL
  
  <strong>svn_log()</strong> returns the complete history of the item at the repository URL <strong>$repos_url</strong>, or the
  history of a specific revision if <strong>$start_revision</strong> is set. This function is equivalent to svn log
  --verbose -r $start_revision $repos_url.

<comment>Param:</comment>
  <info>string</info>  <strong>$repos_url</strong>       Repository URL of the item to retrieve log history from.
  <info>int</info>     <strong>$start_revision</strong>  Revision number of the first log to retrieve. Use <info>SVN_REVISION_HEAD</info> to
                           retrieve the log from the most recent revision.
  <info>int</info>     <strong>$end_revision</strong>    Revision number of the last log to retrieve. Defaults to <strong>$start_revision</strong>
                           if specified or to <info>SVN_REVISION_INITIAL</info> otherwise.
  <info>int</info>     <strong>$limit</strong>           Number of logs to retrieve.
  <info>int</info>     <strong>$flags</strong>           Any combination of <info>SVN_OMIT_MESSAGES</info>, <info>SVN_DISCOVER_CHANGED_PATHS</info> and
                           <info>SVN_STOP_ON_COPY</info>.

<comment>Return:</comment>
  <info>array</info>  On success, this function returns an array file listing in the format of:  Array, ordered
         most recent (highest) revision first
         ( [rev] => integer revision number [author] => string author name [msg] => string log
         message [date] => string date formatted per ISO 8601, i.e. date('c') [paths] => Array,
         describing changed files ( [0] => Array ( [action] => string letter signifying change
         [path] =>  absolute repository path of changed file ) [1] => ... )
         )
         [1] => ...
         ]]>
         
         The output will always be a numerically indexed array of arrays, even when there are none
         or only one log message(s).
         
         The value of action is a subset of the status output in the first column, where possible
         values are:
         
         If no changes were made to the item, an empty array is returned.

<comment>See Also:</comment>
   * 
      SVN documentation on svn log
     


id: svn_ls
type: function
doc:
<comment>Description:</comment>
  Returns list of directory contents in repository URL, optionally at revision number
  
  This function queries the repository URL and returns a list of files and directories, optionally
  from a specific revision. This is equivalent to svn list $repos_url[@$revision_no]
  
  This function does not work with working copies. <strong>$repos_url</strong> must be a repository URL.

<comment>Param:</comment>
  <info></info>      <strong>$url</strong>       URL of the repository, eg. http://www.example.com/svnroot. To access a local
                   Subversion repository via filesystem, use the file URI scheme, eg.
                   file:///home/user/svn-repos
  <info></info>      <strong>$revision</strong>  Integer revision number to retrieve listing of. When omitted, the HEAD revision
                   is used.
  <info>bool</info>  <strong>$recurse</strong>   Enables recursion.

<comment>Return:</comment>
  <info>array</info>  On success, this function returns an array file listing in the format of:  Array (
         [created_rev] => integer revision number of last edit [last_author] => string author name
         of last edit [size] => integer byte file size of file [time] => string date of last edit in
         form 'M d H:i' or 'M d Y', depending on how old the file is [time_t] => integer unix
         timestamp of last edit [name] => name of file/directory [type] => type, can be 'file' or
         'dir' )
         [1] => ...
         ]]>

<comment>See Also:</comment>
   * SVN documentation on svn list


id: svn_mkdir
type: function
doc:
<comment>Description:</comment>
  Creates a directory in a working copy or repository
  
  Creates a directory in a working copy or repository.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  The path to the working copy or repository.

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

<comment>See Also:</comment>
   * <strong>svn_add()</strong>
   * <strong>svn_copy()</strong>


id: svn_repos_create
type: function
doc:
<comment>Description:</comment>
  Create a new subversion repository at path
  
  This function is
  currently not documented; only its argument list is available.
  
  Create a new subversion repository at path

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


id: svn_repos_fs
type: function
doc:
<comment>Description:</comment>
  Gets a handle on the filesystem for a repository
  
  This function is
  currently not documented; only its argument list is available.
  
  Gets a handle on the filesystem for a repository

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


id: svn_repos_fs_commit_txn
type: function
doc:
<comment>Description:</comment>
  Commits a transaction and returns the new revision
  
  This function is
  currently not documented; only its argument list is available.
  
  Commits a transaction and returns the new revision

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


id: svn_repos_hotcopy
type: function
doc:
<comment>Description:</comment>
  Make a hot-copy of the repos at repospath; copy it to destpath
  
  This function is
  currently not documented; only its argument list is available.
  
  Make a hot-copy of the repos at repospath; copy it to destpath

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


id: svn_repos_open
type: function
doc:
<comment>Description:</comment>
  Open a shared lock on a repository
  
  This function is
  currently not documented; only its argument list is available.
  
  Open a shared lock on a repository.

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


id: svn_repos_recover
type: function
doc:
<comment>Description:</comment>
  Run recovery procedures on the repository located at path
  
  This function is
  currently not documented; only its argument list is available.
  
  Run recovery procedures on the repository located at path.

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


id: svn_revert
type: function
doc:
<comment>Description:</comment>
  Revert changes to the working copy
  
  Revert any local changes to the path in a working copy.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>       The path to the working repository.
  <info>bool</info>    <strong>$recursive</strong>  Optionally make recursive changes.

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

<comment>See Also:</comment>
   * <strong>svn_delete()</strong>
   * <strong>svn_export()</strong>


id: svn_status
type: function
doc:
<comment>Description:</comment>
  Returns the status of working copy files and directories
  
  Returns the status of working copy files and directories, giving modifications, additions,
  deletions and other changes to items in the working copy.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>   Local path to file or directory to retrieve status of.
                  
                  Relative paths will be resolved as if the current working directory was the one
                  that contains the PHP binary. To use the calling script's working directory, use
                  <strong>realpath()</strong> or dirname(__FILE__).
  <info>int</info>     <strong>$flags</strong>  Any combination of <info>Svn::NON_RECURSIVE</info>, <info>Svn::ALL</info> (regardless of modification
                  status), <info>Svn::SHOW_UPDATES</info> (entries will be added for items that are out-of-date),
                  <info>Svn::NO_IGNORE</info> (disregard <return>svn:ignore</return> properties when scanning for new files) and
                  <info>Svn::IGNORE_EXTERNALS</info>.

<comment>Return:</comment>
  <info>array</info>  Returns a numerically indexed array of associative arrays detailing the status of items in
         the repository:
         
         The information on the item is an associative array that can contain the following keys:
         
         String path to file/directory of this entry on local filesystem.
         
         Status of item's text. Refer to status constants for possible values.
         
         Status of item's text in repository. Only accurate if <strong>$update</strong> was set to <info>true</info>. Refer to
         status constants for possible values.
         
         Status of item's properties. Refer to status constants for possible values.
         
         Status of item's property in repository. Only accurate if <strong>$update</strong> was set to <info>true</info>. Refer to
         status constants for possible values.
         
         Whether or not the item is locked. (Only set if <info>true</info>.)
         
         Whether or not the item was copied (scheduled for addition with history). (Only set if
         <info>true</info>.)
         
         Whether or not the item was switched using the switch command. (Only set if <info>true</info>)
         
         These keys are only set if the item is versioned:
         
         Base name of item in repository.
         
         URL of item in repository.
         
         Base URL of repository.
         
         Integer revision of item in working copy.
         
         Type of item, i.e. file or directory. Refer to type constants for possible values.
         
         Scheduled action for item, i.e. addition or deletion. Constants for these magic numbers are
         not available, they can be emulated by using:
         
         Whether or not the item was deleted, but parent revision lags behind. (Only set if <info>true</info>.)
         
         Whether or not the item is absent, that is, Subversion knows that there should be something
         there but there isn't. (Only set if <info>true</info>.)
         
         Whether or not the entries file for a directory is incomplete. (Only set if <info>true</info>.)
         
         Integer Unix timestamp of last commit date. (Unaffected by <strong>$update</strong>.)
         
         Integer revision of last commit. (Unaffected by <strong>$update</strong>.)
         
         String author of last commit. (Unaffected by <strong>$update</strong>.)
         
         Integer Unix timestamp of last up-to-date time for properties
         
         Integer Unix timestamp of last up-to-date time for text

<comment>See Also:</comment>
   * <strong>svn_update()</strong>
   * <strong>svn_log()</strong>
   * SVN documentation for svn status


id: svn_update
type: function
doc:
<comment>Description:</comment>
  Update working copy
  
  Update working copy at <strong>$path</strong> to revision <strong>$revno</strong>. If <strong>$recurse</strong> is true, directories will be
  recursively updated.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>     Path to local working copy.
                    
                    Relative paths will be resolved as if the current working directory was the one
                    that contains the PHP binary. To use the calling script's working directory, use
                    <strong>realpath()</strong> or dirname(__FILE__).
  <info>int</info>     <strong>$revno</strong>    Revision number to update to, default is <info>SVN_REVISION_HEAD</info>.
  <info>bool</info>    <strong>$recurse</strong>  Whether or not to recursively update directories.

<comment>Return:</comment>
  <info>int</info>  Returns new revision number on success, returns <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>svn_checkout()</strong>
   * <strong>svn_commit()</strong>
   * SVN documentation for svn update


id: swoole_async_dns_lookup
type: function
doc:
<comment>Description:</comment>
  Async and non-blocking hostname to IP lookup

<comment>Param:</comment>
  <info>string</info>    <strong>$hostname</strong>  The host name.
  <info>callable</info>  <strong>$callback</strong>  The host name.
                       
                       The IP address.
  <info>string</info>    <strong>$hostname</strong>  The host name.
  <info></info>          <strong>$IP</strong>        The IP address.

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


id: swoole_async_read
type: function
doc:
<comment>Description:</comment>
  Read file stream asynchronously

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>    The filename of the file being read.
  <info>callable</info>  <strong>$callback</strong>    The name of the file.
                         
                         The content readed from the file stream.
  <info>string</info>    <strong>$filename</strong>    The name of the file.
  <info>string</info>    <strong>$content</strong>     The content readed from the file stream.
  <info>int</info>       <strong>$chunk_size</strong>  The chunk length.
  <info>int</info>       <strong>$offset</strong>      The offset.

<comment>Return:</comment>
  <info>bool</info>  Whether the read is succeed.


id: swoole_async_readfile
type: function
doc:
<comment>Description:</comment>
  Read a file asynchronously

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>  The filename of the file being read.
  <info>callable</info>  <strong>$callback</strong>  The name of the file.
                       
                       The content read from the file.
  <info>string</info>    <strong>$filename</strong>  The name of the file.
  <info>string</info>    <strong>$content</strong>   The content read from the file.

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


id: swoole_async_set
type: function
doc:
<comment>Description:</comment>
  Update the async I/O options

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

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


id: swoole_async_write
type: function
doc:
<comment>Description:</comment>
  Write data to a file stream asynchronously

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>  The filename being written.
  <info>string</info>    <strong>$content</strong>   The content writing to the file.
  <info>int</info>       <strong>$offset</strong>    The offset.
  <info>callable</info>  <strong>$callback</strong>  

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


id: swoole_async_writefile
type: function
doc:
<comment>Description:</comment>
  Write data to a file asynchronously

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>  The filename being written.
  <info>string</info>    <strong>$content</strong>   The content writing to the file.
  <info>callable</info>  <strong>$callback</strong>  
  <info>int</info>       <strong>$flags</strong>     

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


id: swoole_clear_error
type: function
doc:
<comment>Description:</comment>
  Clear errors in the socket or on the last error code
  
  Clear errors in the socket or on the last error code.

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


id: swoole_client_select
type: function
doc:
<comment>Description:</comment>
  Get the file description which are ready to read/write or error

<comment>Param:</comment>
  <info>array</info>  <strong>$read_array</strong>   
  <info>array</info>  <strong>$write_array</strong>  
  <info>array</info>  <strong>$error_array</strong>  
  <info>float</info>  <strong>$timeout</strong>      

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


id: swoole_cpu_num
type: function
doc:
<comment>Description:</comment>
  Get the number of CPU

<comment>Return:</comment>
  <info>int</info>  The number of CPU.


id: swoole_errno
type: function
doc:
<comment>Description:</comment>
  Get the error code of the latest system call

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


id: swoole_error_log
type: function
doc:
<comment>Description:</comment>
  Output error messages to the log
  
  Output error messages to the log.

<comment>Param:</comment>
  <info>int</info>     <strong>$level</strong>  Log Level, constants can be used: <info>SWOOLE_LOG_DEBUG</info>, <info>SWOOLE_LOG_TRACE</info>,
                  <info>SWOOLE_LOG_INFO</info>, <info>SWOOLE_LOG_NOTICE</info>, <info>SWOOLE_LOG_WARNING</info>, <info>SWOOLE_LOG_ERROR</info>,
                  <info>SWOOLE_LOG_NONE</info>
  <info>string</info>  <strong>$msg</strong>    Message content to be written to the log.

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


id: swoole_event_add
type: function
doc:
<comment>Description:</comment>
  Add new callback functions of a socket into the EventLoop

<comment>Param:</comment>
  <info>int</info>       <strong>$fd</strong>              
  <info>callable</info>  <strong>$read_callback</strong>   
  <info>callable</info>  <strong>$write_callback</strong>  
  <info>int</info>       <strong>$events</strong>          

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


id: swoole_event_defer
type: function
doc:
<comment>Description:</comment>
  Add callback function to the next event loop

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  

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


id: swoole_event_del
type: function
doc:
<comment>Description:</comment>
  Remove all event callback functions of a socket

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

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


id: swoole_event_exit
type: function
doc:
<comment>Description:</comment>
  Exit the eventloop, only available at the client side

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


id: swoole_event_set
type: function
doc:
<comment>Description:</comment>
  Update the event callback functions of a socket

<comment>Param:</comment>
  <info>int</info>       <strong>$fd</strong>              
  <info>callable</info>  <strong>$read_callback</strong>   
  <info>callable</info>  <strong>$write_callback</strong>  
  <info>int</info>       <strong>$events</strong>          

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


id: swoole_event_wait
type: function
doc:
<comment>Description:</comment>
  Start the event loop

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


id: swoole_event_write
type: function
doc:
<comment>Description:</comment>
  Write data to a socket

<comment>Param:</comment>
  <info>int</info>     <strong>$fd</strong>    
  <info>string</info>  <strong>$data</strong>  

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


id: swoole_get_local_ip
type: function
doc:
<comment>Description:</comment>
  Get the IPv4 IP addresses of each NIC on the machine

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


id: swoole_last_error
type: function
doc:
<comment>Description:</comment>
  Get the lastest error message

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


id: swoole_load_module
type: function
doc:
<comment>Description:</comment>
  Load a swoole extension

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


id: swoole_select
type: function
doc:
<comment>Description:</comment>
  Select the file descriptions which are ready to read/write or error in the eventloop

<comment>Param:</comment>
  <info>array</info>  <strong>$read_array</strong>   
  <info>array</info>  <strong>$write_array</strong>  
  <info>array</info>  <strong>$error_array</strong>  
  <info>float</info>  <strong>$timeout</strong>      

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


id: swoole_set_process_name
type: function
doc:
<comment>Description:</comment>
  Set the process name

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

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


id: swoole_strerror
type: function
doc:
<comment>Description:</comment>
  Convert the Errno into error messages

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

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


id: swoole_timer_after
type: function
doc:
<comment>Description:</comment>
  Trigger a one time callback function in the future

<comment>Param:</comment>
  <info>int</info>       <strong>$ms</strong>        
  <info>callable</info>  <strong>$callback</strong>  
  <info>mixed</info>     <strong>$param</strong>     

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


id: swoole_timer_exists
type: function
doc:
<comment>Description:</comment>
  Check if a timer callback function is existed

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

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


id: swoole_timer_tick
type: function
doc:
<comment>Description:</comment>
  Trigger a timer tick callback function by time interval

<comment>Param:</comment>
  <info>int</info>       <strong>$ms</strong>        
  <info>callable</info>  <strong>$callback</strong>  

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


id: swoole_version
type: function
doc:
<comment>Description:</comment>
  Get the version of Swoole

<comment>Return:</comment>
  <info>string</info>  The version of Swoole.


id: symlink
type: function
doc:
<comment>Description:</comment>
  Creates a symbolic link
  
  <strong>symlink()</strong> creates a symbolic link to the existing <strong>$target</strong> with the specified name <strong>$link</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$target</strong>  Target of the link.
  <info>string</info>  <strong>$link</strong>    The link name.

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

<comment>See Also:</comment>
   * <strong>link()</strong>
   * <strong>readlink()</strong>
   * <strong>linkinfo()</strong>
   * <strong>unlink()</strong>


id: sys_get_temp_dir
type: function
doc:
<comment>Description:</comment>
  Returns directory path used for temporary files
  
  Returns the path of the directory PHP stores temporary files in by default.

<comment>Return:</comment>
  <info>string</info>  Returns the path of the temporary directory.

<comment>See Also:</comment>
   * <strong>tmpfile()</strong>
   * <strong>tempnam()</strong>


id: sys_getloadavg
type: function
doc:
<comment>Description:</comment>
  Gets system load average
  
  Returns three samples representing the average system load (the number of processes in the system
  run queue) over the last 1, 5 and 15 minutes, respectively. Returns <info>false</info> on failure.

<comment>Return:</comment>
  <info>array|false</info>  Returns an <info>array</info> with three samples (last 1, 5 and 15 minutes).


id: syslog
type: function
doc:
<comment>Description:</comment>
  Generate a system log message
  
  <strong>syslog()</strong> generates a log message that will be distributed by the system logger.
  
  For information on setting up a user defined log handler, see the syslog.conf5 Unix manual page.
  More information on the syslog facilities and option can be found in the man pages for syslog3 on
  Unix machines.

<comment>Param:</comment>
  <info>int</info>     <strong>$priority</strong>  <strong>$priority</strong> is a combination of the facility and the level. Possible values are:
                     <strong>syslog()</strong> Priorities (in descending order)ConstantDescription<info>LOG_EMERG</info>system is
                     unusable<info>LOG_ALERT</info>action must be taken immediately<info>LOG_CRIT</info>critical
                     conditions<info>LOG_ERR</info>error conditions<info>LOG_WARNING</info>warning conditions<info>LOG_NOTICE</info>normal,
                     but significant, condition<info>LOG_INFO</info>informational message<info>LOG_DEBUG</info>debug-level
                     message
  <info>string</info>  <strong>$message</strong>   The message to send.

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

<comment>See Also:</comment>
   * <strong>openlog()</strong>
   * <strong>closelog()</strong>
   * syslog.filter INI setting (starting with PHP 7.3)


id: system
type: function
doc:
<comment>Description:</comment>
  Execute an external program and display the output
  
  <strong>system()</strong> is just like the C version of the function in that it executes the given <strong>$command</strong> and
  outputs the result.
  
  The <strong>system()</strong> call also tries to automatically flush the web server's output buffer after each line
  of output if PHP is running as a server module.
  
  If you need to execute a command and have all the data from the command passed directly back
  without any interference, use the <strong>passthru()</strong> function.

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>      The command that will be executed.
  <info>int</info>     <strong>$result_code</strong>  If the <strong>$result_code</strong> argument is present, then the return status of the
                        executed command will be written to this variable.

<comment>Return:</comment>
  <info>string|false</info>  Returns the last line of the command output on success, and <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>exec()</strong>
   * <strong>passthru()</strong>
   * <strong>popen()</strong>
   * <strong>escapeshellcmd()</strong>
   * <strong>pcntl_exec()</strong>
   * backtick operator


id: taint
type: function
doc:
<comment>Description:</comment>
  Taint a string
  
  Make a string tainted. This is used for testing purpose only.

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

<comment>Return:</comment>
  <info>bool</info>  Return TRUE if the transformation is done. Always return TRUE if the taint extension is not
        enabled.


id: tan
type: function
doc:
<comment>Description:</comment>
  Tangent
  
  <strong>tan()</strong> returns the tangent of the <strong>$num</strong> parameter.  The <strong>$num</strong> parameter is in radians.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The argument to process in radians

<comment>Return:</comment>
  <info>float</info>  The tangent of <strong>$num</strong>

<comment>See Also:</comment>
   * <strong>atan()</strong>
   * <strong>atan2()</strong>
   * <strong>sin()</strong>
   * <strong>cos()</strong>
   * <strong>tanh()</strong>
   * <strong>deg2rad()</strong>


id: tanh
type: function
doc:
<comment>Description:</comment>
  Hyperbolic tangent
  
  Returns the hyperbolic tangent of <strong>$num</strong>, defined as <return>sinh($num)/cosh($num)</return>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The argument to process

<comment>Return:</comment>
  <info>float</info>  The hyperbolic tangent of <strong>$num</strong>

<comment>See Also:</comment>
   * <strong>tan()</strong>
   * <strong>atanh()</strong>
   * <strong>sinh()</strong>
   * <strong>cosh()</strong>


id: tcpwrap_check
type: function
doc:
<comment>Description:</comment>
  Performs a tcpwrap check
  
  This function consults the /etc/hosts.allow and  /etc/hosts.deny files to check if access to
  service  <strong>$daemon</strong> should be granted or denied for a client.

<comment>Param:</comment>
  <info>string</info>  <strong>$daemon</strong>   The service name.
  <info>string</info>  <strong>$address</strong>  The client remote address. Can be either an IP address or a domain name.
  <info>string</info>  <strong>$user</strong>     An optional user name.
  <info>bool</info>    <strong>$nodns</strong>    If <strong>$address</strong> looks like domain name then DNS is  used to resolve it to IP
                    address; set <strong>$nodns</strong> to  <info>true</info> to avoid this.

<comment>Return:</comment>
  <info>bool</info>  This function returns <info>true</info> if access should be granted, <info>false</info> otherwise.


id: tempnam
type: function
doc:
<comment>Description:</comment>
  Create file with unique file name
  
  Creates a file with a unique filename, with access permission set to 0600, in the specified
  directory. If the directory does not exist or is not writable, <strong>tempnam()</strong> may generate a file in
  the system's temporary directory, and return the full path to that file, including its name.

<comment>Param:</comment>
  <info>string</info>  <strong>$directory</strong>  The directory where the temporary filename will be created.
  <info>string</info>  <strong>$prefix</strong>     The prefix of the generated temporary filename.
                      
                      Only the first 63 characters of the prefix are used, the rest are ignored.
                      Windows uses only the first three characters of the prefix.

<comment>Return:</comment>
  <info>string|false</info>  Returns the new temporary filename (with path), or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>tmpfile()</strong>
   * <strong>sys_get_temp_dir()</strong>
   * <strong>unlink()</strong>


id: textdomain
type: function
doc:
<comment>Description:</comment>
  Sets the default domain
  
  This function sets the domain to search within when calls are made to <strong>gettext()</strong>, usually the named
  after an application.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$domain</strong>  The new message domain, or <info>null</info> to get the current setting without changing
                        it

<comment>Return:</comment>
  <info>string</info>  If successful, this function returns the current message domain, after possibly changing
          it.


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

<comment>Param:</comment>
  <info>string|null</info>        <strong>$filename</strong>        If the <strong>$filename</strong> parameter is given, this function will also
                                      read that file and initialize the object with the file, acting
                                      like <strong>tidy_parse_file()</strong>.
  <info>array|string|null</info>  <strong>$config</strong>          The config <strong>$config</strong> can be passed either as an array or as a
                                      string. If a string is passed, it is interpreted as the name
                                      of the configuration file, otherwise, it is interpreted as the
                                      options themselves.
                                      
                                      For an explanation about each option, visit
                                      http://api.html-tidy.org/#quick-reference.
  <info>string|null</info>        <strong>$encoding</strong>        The <strong>$encoding</strong> parameter sets the encoding for input/output
                                      documents. The possible values for encoding  are:  <return>ascii</return>,
                                      <return>latin0</return>, <return>latin1</return>, <return>raw</return>, <return>utf8</return>, <return>iso2022</return>, <return>mac</return>, <return>win1252</return>, <return>ibm858</return>,
                                      <return>utf16</return>, <return>utf16le</return>, <return>utf16be</return>, <return>big5</return>, and <return>shiftjis</return>.
  <info>bool</info>               <strong>$useIncludePath</strong>  Search for the file in the include_path.

<comment>See Also:</comment>
   * <strong>tidy::parseFile()</strong>
   * <strong>tidy::parseString()</strong>


id: tidy::body
type: function
doc:
<comment>Description:</comment>
  Returns a tidyNode object starting from the  tag of the tidy parse tree
  
  Object-oriented style
  
  Procedural style
  
  Returns a <class>tidyNode</class> object starting from the  \<body&gt; tag of the tidy parse tree.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>tidyNode|null</info>  Returns a <class>tidyNode</class> object starting from the  \<body&gt; tag of the tidy parse tree.

<comment>See Also:</comment>
   * <strong>tidy::head()</strong>
   * <strong>tidy::html()</strong>


id: tidy::cleanRepair
type: function
doc:
<comment>Description:</comment>
  Execute configured cleanup and repair operations on parsed markup
  
  Object-oriented style
  
  Procedural style
  
  This function cleans and repairs the given tidy <strong>$tidy</strong>.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

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

<comment>See Also:</comment>
   * <strong>tidy::repairFile()</strong>
   * <strong>tidy::repairString()</strong>


id: tidy::diagnose
type: function
doc:
<comment>Description:</comment>
  Run configured diagnostics on parsed and repaired markup
  
  Object-oriented style
  
  Procedural style
  
  Runs diagnostic tests on the given tidy <strong>$tidy</strong>, adding some more information about the document in
  the error buffer.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

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

<comment>See Also:</comment>
   * <strong>tidy::errorBuffer()</strong>


id: tidy::getConfig
type: function
doc:
<comment>Description:</comment>
  Get current Tidy configuration
  
  Object-oriented style
  
  Procedural style
  
  Gets the list of the configuration options in use by the given tidy <strong>$tidy</strong>.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>array</info>  Returns an array of configuration options.
         
         For an explanation about each option, visit http://api.html-tidy.org/#quick-reference.

<comment>See Also:</comment>
   * <strong>tidy_reset_config()</strong>
   * <strong>tidy_save_config()</strong>


id: tidy::getHtmlVer
type: function
doc:
<comment>Description:</comment>
  Get the Detected HTML version for the specified document
  
  Object-oriented style
  
  Procedural style
  
  Returns the detected HTML version for the specified tidy <strong>$tidy</strong>.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>int</info>  Returns the detected HTML version.
       
       This function is not yet implemented in the Tidylib itself, so it always return <return>0</return>.


id: tidy::getOpt
type: function
doc:
<comment>Description:</comment>
  Returns the value of the specified configuration option for the tidy document
  
  Object-oriented style
  
  Procedural style
  
  Returns the value of the specified <strong>$option</strong> for the specified tidy <strong>$tidy</strong>.

<comment>Param:</comment>
  <info>tidy</info>    <strong>$tidy</strong>    The <class>Tidy</class> object.
  <info>string</info>  <strong>$option</strong>  You will find a list with each configuration option and their types at:
                   http://api.html-tidy.org/#quick-reference.

<comment>Return:</comment>
  <info>string|int|bool</info>  Returns the value of the specified <strong>$option</strong>. The return type depends on the type
                   of the specified one.


id: tidy::getOptDoc
type: function
doc:
<comment>Description:</comment>
  Returns the documentation for the given option name
    
  
  Object-oriented style
  
  Procedural style
  
  <strong>tidy_get_opt_doc()</strong> returns the documentation for the given option name.
  
  You need at least libtidy from 25 April, 2005 for this function be available.

<comment>Param:</comment>
  <info>tidy</info>    <strong>$tidy</strong>    The <class>Tidy</class> object.
  <info>string</info>  <strong>$option</strong>  The option name

<comment>Return:</comment>
  <info>string|false</info>  Returns a string if the option exists and has documentation available, or <info>false</info>
                otherwise.

<comment>See Also:</comment>
   * <strong>tidy::getconfig()</strong>
   * <strong>tidy::getopt()</strong>


id: tidy::getRelease
type: function
doc:
<comment>Description:</comment>
  Get release date (version) for Tidy library
  
  Object-oriented style
  
  Procedural style
  
  Gets the release date of the Tidy library.

<comment>Return:</comment>
  <info>string</info>  Returns a string with the release date of the Tidy library, which may be 'unknown'.


id: tidy::getStatus
type: function
doc:
<comment>Description:</comment>
  Get status of specified document
  
  Object-oriented style
  
  Procedural style
  
  Returns the status for the specified tidy <strong>$tidy</strong>.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>int</info>  Returns 0 if no error/warning was raised, 1 for warnings or accessibility errors, or 2 for
       errors.


id: tidy::head
type: function
doc:
<comment>Description:</comment>
  Returns a tidyNode object starting from the  tag of the tidy parse tree
  
  Object-oriented style
  
  Procedural style
  
  Returns a <class>tidyNode</class> object starting from the \<head&gt; tag of the tidy parse tree.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>tidyNode|null</info>  Returns the <class>tidyNode</class> object.

<comment>See Also:</comment>
   * <strong>tidy::body()</strong>
   * <strong>tidy::html()</strong>


id: tidy::html
type: function
doc:
<comment>Description:</comment>
  Returns a tidyNode object starting from the  tag of the tidy parse tree
  
  Object-oriented style
  
  Procedural style
  
  Returns a <class>tidyNode</class> object starting from the \<html&gt; tag of the tidy parse tree.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>tidyNode|null</info>  Returns the <class>tidyNode</class> object.

<comment>See Also:</comment>
   * <strong>tidy::body()</strong>
   * <strong>tidy::head()</strong>


id: tidy::isXhtml
type: function
doc:
<comment>Description:</comment>
  Indicates if the document is a XHTML document
  
  Object-oriented style
  
  Procedural style
  
  Tells if the document is a XHTML document.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>bool</info>  This function returns <info>true</info> if the specified tidy <strong>$tidy</strong> is a XHTML document, or <info>false</info>
        otherwise.
        
        This function is not yet implemented in the Tidylib itself, so it always return <info>false</info>.


id: tidy::isXml
type: function
doc:
<comment>Description:</comment>
  Indicates if the document is a generic (non HTML/XHTML) XML document
  
  Object-oriented style
  
  Procedural style
  
  Tells if the document is a generic (non HTML/XHTML) XML document.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>bool</info>  This function returns <info>true</info> if the specified tidy <strong>$tidy</strong> is a generic XML document (non
        HTML/XHTML), or <info>false</info> otherwise.
        
        This function is not yet implemented in the Tidylib itself, so it always return <info>false</info>.


id: tidy::parseFile
type: function
doc:
<comment>Description:</comment>
  Parse markup in file or URI
  
  Object-oriented style
  
  Procedural style
  
  Parses the given file.

<comment>Param:</comment>
  <info>string</info>             <strong>$filename</strong>        If the <strong>$filename</strong> parameter is given, this function will also
                                      read that file and initialize the object with the file, acting
                                      like <strong>tidy_parse_file()</strong>.
  <info>array|string|null</info>  <strong>$config</strong>          The config <strong>$config</strong> can be passed either as an array or as a
                                      string. If a string is passed, it is interpreted as the name
                                      of the configuration file, otherwise, it is interpreted as the
                                      options themselves.
                                      
                                      For an explanation about each option, see
                                      http://api.html-tidy.org/#quick-reference.
  <info>string|null</info>        <strong>$encoding</strong>        The <strong>$encoding</strong> parameter sets the encoding for input/output
                                      documents. The possible values for encoding  are:  <return>ascii</return>,
                                      <return>latin0</return>, <return>latin1</return>, <return>raw</return>, <return>utf8</return>, <return>iso2022</return>, <return>mac</return>, <return>win1252</return>, <return>ibm858</return>,
                                      <return>utf16</return>, <return>utf16le</return>, <return>utf16be</return>, <return>big5</return>, and <return>shiftjis</return>.
  <info>bool</info>               <strong>$useIncludePath</strong>  Search for the file in the include_path.

<comment>Return:</comment>
  <info>bool</info>  tidy::parseFile returns <info>true</info> on success. <strong>tidy_parse_file()</strong> returns a new <class>tidy</class> instance on
        success. Both, the method and the function return <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>tidy::parsestring()</strong>
   * <strong>tidy::repairfile()</strong>
   * <strong>tidy::repairstring()</strong>


id: tidy::parseString
type: function
doc:
<comment>Description:</comment>
  Parse a document stored in a string
  
  Object-oriented style
  
  Procedural style
  
  Parses a document stored in a string.

<comment>Param:</comment>
  <info>string</info>             <strong>$string</strong>    The data to be parsed.
  <info>array|string|null</info>  <strong>$config</strong>    The config <strong>$config</strong> can be passed either as an array or as a string.
                                If a string is passed, it is interpreted as the name of the
                                configuration file, otherwise, it is interpreted as the options
                                themselves.
                                
                                For an explanation about each option, visit
                                http://api.html-tidy.org/#quick-reference.
  <info>string|null</info>        <strong>$encoding</strong>  The <strong>$encoding</strong> parameter sets the encoding for input/output
                                documents. The possible values for encoding  are:  <return>ascii</return>, <return>latin0</return>,
                                <return>latin1</return>, <return>raw</return>, <return>utf8</return>, <return>iso2022</return>, <return>mac</return>, <return>win1252</return>, <return>ibm858</return>, <return>utf16</return>, <return>utf16le</return>,
                                <return>utf16be</return>, <return>big5</return>, and <return>shiftjis</return>.

<comment>Return:</comment>
  <info>bool</info>  tidy::parseString returns <info>true</info> on success. <strong>tidy_parse_string()</strong> returns a new <class>tidy</class> instance
        on success. Both, the method and the function return <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>tidy::parseFile()</strong>
   * <strong>tidy::repairFile()</strong>
   * <strong>tidy::repairString()</strong>


id: tidy::repairFile
type: function
doc:
<comment>Description:</comment>
  Repair a file and return it as a string
  
  Object-oriented style
  
  Procedural style
  
  Repairs the given file and returns it as a string.

<comment>Param:</comment>
  <info>string</info>             <strong>$filename</strong>        The file to be repaired.
  <info>array|string|null</info>  <strong>$config</strong>          The config <strong>$config</strong> can be passed either as an array or as a
                                      string. If a string is passed, it is interpreted as the name
                                      of the configuration file, otherwise, it is interpreted as the
                                      options themselves.
                                      
                                      Check http://tidy.sourceforge.net/docs/quickref.html for an
                                      explanation about each option.
  <info>string|null</info>        <strong>$encoding</strong>        The <strong>$encoding</strong> parameter sets the encoding for input/output
                                      documents. The possible values for encoding  are:  <return>ascii</return>,
                                      <return>latin0</return>, <return>latin1</return>, <return>raw</return>, <return>utf8</return>, <return>iso2022</return>, <return>mac</return>, <return>win1252</return>, <return>ibm858</return>,
                                      <return>utf16</return>, <return>utf16le</return>, <return>utf16be</return>, <return>big5</return>, and <return>shiftjis</return>.
  <info>bool</info>               <strong>$useIncludePath</strong>  Search for the file in the include_path.

<comment>Return:</comment>
  <info>string|false</info>  Returns the repaired contents as a string,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>tidy::parseFile()</strong>
   * <strong>tidy::parseString()</strong>
   * <strong>tidy::repairString()</strong>


id: tidy::repairString
type: function
doc:
<comment>Description:</comment>
  Repair a string using an optionally provided configuration file
  
  Object-oriented style
  
  Procedural style
  
  Repairs the given string.

<comment>Param:</comment>
  <info>string</info>             <strong>$string</strong>    The data to be repaired.
  <info>array|string|null</info>  <strong>$config</strong>    The config <strong>$config</strong> can be passed either as an array or as a string.
                                If a string is passed, it is interpreted as the name of the
                                configuration file, otherwise, it is interpreted as the options
                                themselves.
                                
                                Check http://api.html-tidy.org/#quick-reference for an explanation
                                about each option.
  <info>string|null</info>        <strong>$encoding</strong>  The <strong>$encoding</strong> parameter sets the encoding for input/output
                                documents. The possible values for encoding  are:  <return>ascii</return>, <return>latin0</return>,
                                <return>latin1</return>, <return>raw</return>, <return>utf8</return>, <return>iso2022</return>, <return>mac</return>, <return>win1252</return>, <return>ibm858</return>, <return>utf16</return>, <return>utf16le</return>,
                                <return>utf16be</return>, <return>big5</return>, and <return>shiftjis</return>.

<comment>Return:</comment>
  <info>string|false</info>  Returns the repaired string,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>tidy::parseFile()</strong>
   * <strong>tidy::parseString()</strong>
   * <strong>tidy::repairFile()</strong>


id: tidy::root
type: function
doc:
<comment>Description:</comment>
  Returns a tidyNode object representing the root of the tidy parse tree
  
  Object-oriented style
  
  Procedural style
  
  Returns a <class>tidyNode</class> object representing the root of the tidy parse tree.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>tidyNode|null</info>  Returns the <class>tidyNode</class> object.


id: tidyNode::getParent
type: function
doc:
<comment>Description:</comment>
  Returns the parent node of the current node
  
  Returns the parent node of the current node.

<comment>Return:</comment>
  <info>tidyNode|null</info>  Returns a <info>tidyNode</info> if the node has a parent, or <info>null</info> otherwise.


id: tidyNode::hasChildren
type: function
doc:
<comment>Description:</comment>
  Checks if a node has children
  
  Tells if the node has children.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the node has children, <info>false</info> otherwise.


id: tidyNode::hasSiblings
type: function
doc:
<comment>Description:</comment>
  Checks if a node has siblings
  
  Tells if the node has siblings.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the node has siblings, <info>false</info> otherwise.


id: tidyNode::isAsp
type: function
doc:
<comment>Description:</comment>
  Checks if this node is ASP
  
  Tells whether the current node is ASP.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the node is ASP, <info>false</info> otherwise.


id: tidyNode::isComment
type: function
doc:
<comment>Description:</comment>
  Checks if a node represents a comment
  
  Tells if the node is a comment.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the node is a comment, <info>false</info> otherwise.


id: tidyNode::isHtml
type: function
doc:
<comment>Description:</comment>
  Checks if a node is an element node
  
  Tells if the node is an element node, but not the root node of the document.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the node is an element node, but not the root node of the document, <info>false</info>
        otherwise.


id: tidyNode::isJste
type: function
doc:
<comment>Description:</comment>
  Checks if this node is JSTE
  
  Tells if the node is JSTE.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the node is JSTE, <info>false</info> otherwise.


id: tidyNode::isPhp
type: function
doc:
<comment>Description:</comment>
  Checks if a node is PHP
  
  Tells if the node is PHP.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the current node is PHP code, <info>false</info> otherwise.


id: tidyNode::isText
type: function
doc:
<comment>Description:</comment>
  Checks if a node represents text (no markup)
  
  Tells if the node represents a text (without any markup).

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the node represent a text, <info>false</info> otherwise.


id: tidy_access_count
type: function
doc:
<comment>Description:</comment>
  Returns the Number of Tidy accessibility warnings encountered for specified document
  
  <strong>tidy_access_count()</strong> returns the number of accessibility warnings found for the specified document.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>int</info>  Returns the number of warnings.

<comment>See Also:</comment>
   * <strong>tidy_error_count()</strong>
   * <strong>tidy_warning_count()</strong>


id: tidy_config_count
type: function
doc:
<comment>Description:</comment>
  Returns the Number of Tidy configuration errors encountered for specified document
  
  Returns the number of errors encountered in the configuration of the specified tidy <strong>$tidy</strong>.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>int</info>  Returns the number of errors.


id: tidy_error_count
type: function
doc:
<comment>Description:</comment>
  Returns the Number of Tidy errors encountered for specified document
  
  Returns the number of Tidy errors encountered for the specified document.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>int</info>  Returns the number of errors.

<comment>See Also:</comment>
   * <strong>tidy_access_count()</strong>
   * <strong>tidy_warning_count()</strong>


id: tidy_get_error_buffer
type: function
doc:
<comment>Description:</comment>
  Return warnings and errors which occurred parsing the specified document
  
  Object-oriented style (property):
  
  Procedural style:
  
  Returns warnings and errors which occurred parsing the specified document.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>string|false</info>  Returns the error buffer as a string, or <info>false</info> if the buffer is empty.

<comment>See Also:</comment>
   * <strong>tidy_access_count()</strong>
   * <strong>tidy_error_count()</strong>
   * <strong>tidy_warning_count()</strong>


id: tidy_get_output
type: function
doc:
<comment>Description:</comment>
  Return a string representing the parsed tidy markup
  
  Gets a string with the repaired html.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>string</info>  Returns the parsed tidy markup.


id: tidy_warning_count
type: function
doc:
<comment>Description:</comment>
  Returns the Number of Tidy warnings encountered for specified document
  
  Returns the number of Tidy warnings encountered for the specified document.

<comment>Param:</comment>
  <info>tidy</info>  <strong>$tidy</strong>  The <class>Tidy</class> object.

<comment>Return:</comment>
  <info>int</info>  Returns the number of warnings.

<comment>See Also:</comment>
   * <strong>tidy_error_count()</strong>
   * <strong>tidy_access_count()</strong>


id: time
type: function
doc:
<comment>Description:</comment>
  Return current Unix timestamp
  
  Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970
  00:00:00 GMT).
  
  Unix timestamps do not contain any information with regards to any local timezone. It is
  recommended to use the <class>DateTimeImmutable</class> class for handling date and time information in order to
  avoid the pitfalls that come with just Unix timestamps.

<comment>Return:</comment>
  <info>int</info>  Returns the current timestamp.

<comment>See Also:</comment>
   * <class>DateTimeImmutable</class>
   * <strong>date()</strong>
   * <strong>microtime()</strong>


id: time_nanosleep
type: function
doc:
<comment>Description:</comment>
  Delay for a number of seconds and nanoseconds
  
  Delays program execution for the given number of <strong>$seconds</strong> and <strong>$nanoseconds</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>      Must be a non-negative integer.
  <info>int</info>  <strong>$nanoseconds</strong>  Must be a non-negative integer less than 1 billion.
                     
                     On Windows, the system may sleep longer that the given number of nanoseconds,
                     depending on the hardware.

<comment>Return:</comment>
  <info>array|bool</info>  Returns <info>true</info> on success or <info>false</info> on failure.
              
              If the delay was interrupted by a signal, an associative array will be returned with
              the components: <return>seconds</return> - number of seconds remaining in the delay <return>nanoseconds</return> -
              number of nanoseconds remaining in the delay
              
              <return>seconds</return> - number of seconds remaining in the delay
              
              <return>nanoseconds</return> - number of nanoseconds remaining in the delay

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


id: time_sleep_until
type: function
doc:
<comment>Description:</comment>
  Make the script sleep until the specified time
    
  
  Makes the script sleep until the specified <strong>$timestamp</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$timestamp</strong>  The timestamp when the script should wake.

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

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


id: timezone_abbreviations_list
type: function
doc:
<comment>Description:</comment>
  Alias of DateTimeZone::listAbbreviations
  
  This function is an alias of:  DateTimeZone::listAbbreviations


id: timezone_identifiers_list
type: function
doc:
<comment>Description:</comment>
  Alias of DateTimeZone::listIdentifiers
  
  This function is an alias of:  DateTimeZone::listIdentifiers


id: timezone_location_get
type: function
doc:
<comment>Description:</comment>
  Alias of DateTimeZone::getLocation
  
  This function is an alias of:  DateTimeZone::getLocation


id: timezone_name_from_abbr
type: function
doc:
<comment>Description:</comment>
  Returns a timezone name by guessing from abbreviation and UTC offset

<comment>Param:</comment>
  <info>string</info>  <strong>$abbr</strong>       Time zone abbreviation.
  <info>int</info>     <strong>$utcOffset</strong>  Offset from GMT in seconds. Defaults to -1 which means that first found time
                      zone corresponding to <strong>$abbr</strong> is returned. Otherwise exact offset is searched
                      and only if not found then the first time zone with any offset is returned.
  <info>int</info>     <strong>$isDST</strong>      Daylight saving time indicator. Defaults to -1, which means that whether the
                      time zone has daylight saving or not is not taken into consideration when
                      searching. If this is set to 1, then the <strong>$utcOffset</strong> is assumed to be an offset
                      with daylight saving in effect; if 0, then <strong>$utcOffset</strong> is assumed to be an
                      offset without daylight saving in effect. If <strong>$abbr</strong> doesn't exist then the time
                      zone is searched solely by the <strong>$utcOffset</strong> and <strong>$isDST</strong>.

<comment>Return:</comment>
  <info>string|false</info>  Returns time zone name on success or <info>false</info> on failure.

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


id: timezone_name_get
type: function
doc:
<comment>Description:</comment>
  Alias of DateTimeZone::getName
  
  This function is an alias of:  DateTimeZone::getName


id: timezone_offset_get
type: function
doc:
<comment>Description:</comment>
  Alias of DateTimeZone::getOffset
  
  This function is an alias of:  DateTimeZone::getOffset


id: timezone_open
type: function
doc:
<comment>Description:</comment>
  Alias of DateTimeZone::__construct
  
  This function is an alias of:  DateTimeZone::__construct


id: timezone_transitions_get
type: function
doc:
<comment>Description:</comment>
  Alias of DateTimeZone::getTransitions
  
  This function is an alias of:  DateTimeZone::getTransitions


id: timezone_version_get
type: function
doc:
<comment>Description:</comment>
  Gets the version of the timezonedb
    
  
  Returns the current version of the timezonedb.

<comment>Return:</comment>
  <info>string</info>  Returns a <info>string</info> in the format <return>YYYY.increment</return>, such as <return>2022.2</return>.
          
          If you have a timezone database version that is old (for example, it doesn't show the
          current year), then you can update the timezone information by either upgrading your PHP
          version, or installing the timezonedb PECL package.
          
          Some Linux distributions patch PHP's date/time support to use an alternative source for
          timezone information. In which case this function will return <return>0.system</return>. You are encouraged
          to install the timezonedb PECL package in that case as well.

<comment>See Also:</comment>
   * List of Supported Timezones


id: tmpfile
type: function
doc:
<comment>Description:</comment>
  Creates a temporary file
  
  Creates a temporary file with a unique name in read-write-binary (w+b) mode and returns a file
  handle.
  
  The file is automatically removed when closed (for example, by calling <strong>fclose()</strong>, or when there are
  no remaining references to the file handle returned by <strong>tmpfile()</strong>), or when the script ends.
  
  If the script terminates unexpectedly, the temporary file may not be deleted.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a file handle, similar to the one returned by <strong>fopen()</strong>, for the new file or
                  <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>tempnam()</strong>
   * <strong>sys_get_temp_dir()</strong>


id: token_get_all
type: function
doc:
<comment>Description:</comment>
  Split given source into PHP tokens
  
  <strong>token_get_all()</strong> parses the given <strong>$code</strong>  string into PHP language tokens using the Zend engine's
  lexical scanner.
  
  For a list of parser tokens, see , or use  <strong>token_name()</strong> to translate a token value into its string
  representation.

<comment>Param:</comment>
  <info>string</info>  <strong>$code</strong>   The PHP source to parse.
  <info>int</info>     <strong>$flags</strong>  Valid flags: <info>TOKEN_PARSE</info> - Recognises the ability to use reserved words in
                  specific contexts.
                  
                  <info>TOKEN_PARSE</info> - Recognises the ability to use reserved words in specific contexts.

<comment>Return:</comment>
  <info>array</info>  An array of token identifiers. Each individual token identifier is either a single
         character (i.e.: <return>;</return>, <return>.</return>,  <return>&gt;</return>, <return>!</return>, etc...), or a three element array containing the token
         index in element 0, the string content of the original token in element 1 and the line
         number in element 2.

<comment>See Also:</comment>
   * <strong>PhpToken::tokenize()</strong>
   * <strong>token_name()</strong>


id: token_name
type: function
doc:
<comment>Description:</comment>
  Get the symbolic name of a given PHP token
  
  <strong>token_name()</strong> gets the symbolic name for a PHP  <strong>$id</strong> value.

<comment>Param:</comment>
  <info>int</info>  <strong>$id</strong>  The token value.

<comment>Return:</comment>
  <info>string</info>  The symbolic name of the given <strong>$id</strong>.

<comment>See Also:</comment>
   * List of Parser Tokens
   * <strong>PhpToken::getTokenName()</strong>


id: touch
type: function
doc:
<comment>Description:</comment>
  Sets access and modification time of file
  
  Attempts to set the access and modification times of the file named in the <strong>$filename</strong> parameter to
  the value given in <strong>$mtime</strong>.  Note that the access time is always modified, regardless of the number
  of parameters.
  
  If the file does not exist, it will be created.

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>  The name of the file being touched.
  <info>int|null</info>  <strong>$mtime</strong>     The touch time. If <strong>$mtime</strong> is <info>null</info>,  the current system <strong>time()</strong> is used.
  <info>int|null</info>  <strong>$atime</strong>     If not <info>null</info>, the access time of the given filename is set to the value of
                       <strong>$atime</strong>. Otherwise, it is set to the value passed to the <strong>$mtime</strong> parameter. If
                       both are <info>null</info>, the current system time is used.

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


id: trader_acos
type: function
doc:
<comment>Description:</comment>
  Vector Trigonometric ACos
  
  Calculates the arc cosine for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_ad
type: function
doc:
<comment>Description:</comment>
  Chaikin A/D Line

<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>array</info>  <strong>$volume</strong>  Volume traded, array of real values.

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


id: trader_add
type: function
doc:
<comment>Description:</comment>
  Vector Arithmetic Add
  
  Calculates the vector addition of <strong>$real0</strong> to <strong>$real1</strong> and returns the resulting vector.

<comment>Param:</comment>
  <info>array</info>  <strong>$real0</strong>  Array of real values.
  <info>array</info>  <strong>$real1</strong>  Array of real values.

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


id: trader_adosc
type: function
doc:
<comment>Description:</comment>
  Chaikin A/D 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>array</info>  <strong>$volume</strong>      Volume traded, array of real values.
  <info>int</info>    <strong>$fastPeriod</strong>  Number of period for the fast MA. Valid range from 2 to 100000.
  <info>int</info>    <strong>$slowPeriod</strong>  Number of period for the slow MA. Valid range from 2 to 100000.

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


id: trader_adx
type: function
doc:
<comment>Description:</comment>
  Average Directional Movement Index

<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_adxr
type: function
doc:
<comment>Description:</comment>
  Average Directional Movement Index Rating

<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_apo
type: function
doc:
<comment>Description:</comment>
  Absolute Price Oscillator

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>        Array of real values.
  <info>int</info>    <strong>$fastPeriod</strong>  Number of period for the fast MA. Valid range from 2 to 100000.
  <info>int</info>    <strong>$slowPeriod</strong>  Number of period for the slow MA. Valid range from 2 to 100000.
  <info>int</info>    <strong>$mAType</strong>      Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

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


id: trader_aroon
type: function
doc:
<comment>Description:</comment>
  Aroon

<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>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_aroonosc
type: function
doc:
<comment>Description:</comment>
  Aroon 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>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_asin
type: function
doc:
<comment>Description:</comment>
  Vector Trigonometric ASin
  
  Calculates the arc sine for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_atan
type: function
doc:
<comment>Description:</comment>
  Vector Trigonometric ATan
  
  Calculates the arc tangent for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_atr
type: function
doc:
<comment>Description:</comment>
  Average True Range

<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_avgprice
type: function
doc:
<comment>Description:</comment>
  Average Price

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_bbands
type: function
doc:
<comment>Description:</comment>
  Bollinger Bands

<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>$nbDevUp</strong>     Deviation multiplier for upper band. Valid range from TRADER_REAL_MIN to
                      TRADER_REAL_MAX.
  <info>float</info>  <strong>$nbDevDn</strong>     Deviation multiplier for lower band. Valid range from TRADER_REAL_MIN to
                      TRADER_REAL_MAX.
  <info>int</info>    <strong>$mAType</strong>      Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

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


id: trader_beta
type: function
doc:
<comment>Description:</comment>
  Beta

<comment>Param:</comment>
  <info>array</info>  <strong>$real0</strong>       Array of real values.
  <info>array</info>  <strong>$real1</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_bop
type: function
doc:
<comment>Description:</comment>
  Balance Of Power

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cci
type: function
doc:
<comment>Description:</comment>
  Commodity Channel Index

<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_cdl2crows
type: function
doc:
<comment>Description:</comment>
  Two Crows

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdl3blackcrows
type: function
doc:
<comment>Description:</comment>
  Three Black Crows

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdl3inside
type: function
doc:
<comment>Description:</comment>
  Three Inside Up/Down

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdl3linestrike
type: function
doc:
<comment>Description:</comment>
  Three-Line Strike

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdl3outside
type: function
doc:
<comment>Description:</comment>
  Three Outside Up/Down

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdl3starsinsouth
type: function
doc:
<comment>Description:</comment>
  Three Stars In The South

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdl3whitesoldiers
type: function
doc:
<comment>Description:</comment>
  Three Advancing White Soldiers

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlabandonedbaby
type: function
doc:
<comment>Description:</comment>
  Abandoned Baby

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>         Opening price, array of real values.
  <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>float</info>  <strong>$penetration</strong>  Percentage of penetration of a candle within another candle.

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


id: trader_cdladvanceblock
type: function
doc:
<comment>Description:</comment>
  Advance Block

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlbelthold
type: function
doc:
<comment>Description:</comment>
  Belt-hold

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlbreakaway
type: function
doc:
<comment>Description:</comment>
  Breakaway

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlclosingmarubozu
type: function
doc:
<comment>Description:</comment>
  Closing Marubozu

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlconcealbabyswall
type: function
doc:
<comment>Description:</comment>
  Concealing Baby Swallow

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlcounterattack
type: function
doc:
<comment>Description:</comment>
  Counterattack

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdldarkcloudcover
type: function
doc:
<comment>Description:</comment>
  Dark Cloud Cover

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>         Opening price, array of real values.
  <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>float</info>  <strong>$penetration</strong>  Percentage of penetration of a candle within another candle.

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


id: trader_cdldoji
type: function
doc:
<comment>Description:</comment>
  Doji

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdldojistar
type: function
doc:
<comment>Description:</comment>
  Doji Star

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdldragonflydoji
type: function
doc:
<comment>Description:</comment>
  Dragonfly Doji

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlengulfing
type: function
doc:
<comment>Description:</comment>
  Engulfing Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdleveningdojistar
type: function
doc:
<comment>Description:</comment>
  Evening Doji Star

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>         Opening price, array of real values.
  <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>float</info>  <strong>$penetration</strong>  Percentage of penetration of a candle within another candle.

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


id: trader_cdleveningstar
type: function
doc:
<comment>Description:</comment>
  Evening Star

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>         Opening price, array of real values.
  <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>float</info>  <strong>$penetration</strong>  Percentage of penetration of a candle within another candle.

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


id: trader_cdlgapsidesidewhite
type: function
doc:
<comment>Description:</comment>
  Up/Down-gap side-by-side white lines

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlgravestonedoji
type: function
doc:
<comment>Description:</comment>
  Gravestone Doji

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlhammer
type: function
doc:
<comment>Description:</comment>
  Hammer

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlhangingman
type: function
doc:
<comment>Description:</comment>
  Hanging Man

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlharami
type: function
doc:
<comment>Description:</comment>
  Harami Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlharamicross
type: function
doc:
<comment>Description:</comment>
  Harami Cross Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlhighwave
type: function
doc:
<comment>Description:</comment>
  High-Wave Candle

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlhikkake
type: function
doc:
<comment>Description:</comment>
  Hikkake Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlhikkakemod
type: function
doc:
<comment>Description:</comment>
  Modified Hikkake Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlhomingpigeon
type: function
doc:
<comment>Description:</comment>
  Homing Pigeon

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlidentical3crows
type: function
doc:
<comment>Description:</comment>
  Identical Three Crows

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlinneck
type: function
doc:
<comment>Description:</comment>
  In-Neck Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlinvertedhammer
type: function
doc:
<comment>Description:</comment>
  Inverted Hammer

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlkicking
type: function
doc:
<comment>Description:</comment>
  Kicking

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlkickingbylength
type: function
doc:
<comment>Description:</comment>
  Kicking - bull/bear determined by the longer marubozu

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlladderbottom
type: function
doc:
<comment>Description:</comment>
  Ladder Bottom

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdllongleggeddoji
type: function
doc:
<comment>Description:</comment>
  Long Legged Doji

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdllongline
type: function
doc:
<comment>Description:</comment>
  Long Line Candle

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlmarubozu
type: function
doc:
<comment>Description:</comment>
  Marubozu

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlmatchinglow
type: function
doc:
<comment>Description:</comment>
  Matching Low

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlmathold
type: function
doc:
<comment>Description:</comment>
  Mat Hold

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>         Opening price, array of real values.
  <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>float</info>  <strong>$penetration</strong>  Percentage of penetration of a candle within another candle.

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


id: trader_cdlmorningdojistar
type: function
doc:
<comment>Description:</comment>
  Morning Doji Star

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>         Opening price, array of real values.
  <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>float</info>  <strong>$penetration</strong>  Percentage of penetration of a candle within another candle.

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


id: trader_cdlmorningstar
type: function
doc:
<comment>Description:</comment>
  Morning Star

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>         Opening price, array of real values.
  <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>float</info>  <strong>$penetration</strong>  Percentage of penetration of a candle within another candle.

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


id: trader_cdlonneck
type: function
doc:
<comment>Description:</comment>
  On-Neck Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlpiercing
type: function
doc:
<comment>Description:</comment>
  Piercing Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlrickshawman
type: function
doc:
<comment>Description:</comment>
  Rickshaw Man

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlrisefall3methods
type: function
doc:
<comment>Description:</comment>
  Rising/Falling Three Methods

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlseparatinglines
type: function
doc:
<comment>Description:</comment>
  Separating Lines

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlshootingstar
type: function
doc:
<comment>Description:</comment>
  Shooting Star

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlshortline
type: function
doc:
<comment>Description:</comment>
  Short Line Candle

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlspinningtop
type: function
doc:
<comment>Description:</comment>
  Spinning Top

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlstalledpattern
type: function
doc:
<comment>Description:</comment>
  Stalled Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlsticksandwich
type: function
doc:
<comment>Description:</comment>
  Stick Sandwich

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdltakuri
type: function
doc:
<comment>Description:</comment>
  Takuri (Dragonfly Doji with very long lower shadow)

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdltasukigap
type: function
doc:
<comment>Description:</comment>
  Tasuki Gap

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlthrusting
type: function
doc:
<comment>Description:</comment>
  Thrusting Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdltristar
type: function
doc:
<comment>Description:</comment>
  Tristar Pattern

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlunique3river
type: function
doc:
<comment>Description:</comment>
  Unique 3 River

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlupsidegap2crows
type: function
doc:
<comment>Description:</comment>
  Upside Gap Two Crows

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_cdlxsidegap3methods
type: function
doc:
<comment>Description:</comment>
  Upside/Downside Gap Three Methods

<comment>Param:</comment>
  <info>array</info>  <strong>$open</strong>   Opening price, array of real values.
  <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_ceil
type: function
doc:
<comment>Description:</comment>
  Vector Ceil
  
  Calculates the next highest integer for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_cmo
type: function
doc:
<comment>Description:</comment>
  Chande Momentum Oscillator

<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_correl
type: function
doc:
<comment>Description:</comment>
  Pearson's Correlation Coefficient (r)

<comment>Param:</comment>
  <info>array</info>  <strong>$real0</strong>       Array of real values.
  <info>array</info>  <strong>$real1</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_cos
type: function
doc:
<comment>Description:</comment>
  Vector Trigonometric Cos
  
  Calculates the cosine for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_cosh
type: function
doc:
<comment>Description:</comment>
  Vector Trigonometric Cosh
  
  Calculates the hyperbolic cosine for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_dema
type: function
doc:
<comment>Description:</comment>
  Double Exponential 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_div
type: function
doc:
<comment>Description:</comment>
  Vector Arithmetic Div
  
  Divides each value from <strong>$real0</strong> by the corresponding value from <strong>$real1</strong> and returns the resulting
  array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real0</strong>  Array of real values.
  <info>array</info>  <strong>$real1</strong>  Array of real values.

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


id: trader_dx
type: function
doc:
<comment>Description:</comment>
  Directional Movement Index

<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_ema
type: function
doc:
<comment>Description:</comment>
  Exponential 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_errno
type: function
doc:
<comment>Description:</comment>
  Get error code
  
  Get error code of the last operation.

<comment>Return:</comment>
  <info>int</info>  Returns the error code identified by one of the TRADER_ERR_* constants.


id: trader_exp
type: function
doc:
<comment>Description:</comment>
  Vector Arithmetic Exp
  
  Calculates <info>e</info> raised to the power of each value in <strong>$real</strong>. Returns an array with the calculated
  data.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_floor
type: function
doc:
<comment>Description:</comment>
  Vector Floor
  
  Calculates the next lowest integer for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_get_compat
type: function
doc:
<comment>Description:</comment>
  Get compatibility mode
  
  Get compatibility mode which affects the way calculations are done by all the extension functions.

<comment>Return:</comment>
  <info>int</info>  Returns the compatibility mode id which can be identified by TRADER_COMPATIBILITY_* series of
       constants.


id: trader_get_unstable_period
type: function
doc:
<comment>Description:</comment>
  Get unstable period
  
  Get unstable period factor for a particular function.

<comment>Param:</comment>
  <info>int</info>  <strong>$functionId</strong>  Function ID the factor to be read for. TRADER_FUNC_UNST_* series of constants
                    should be used.

<comment>Return:</comment>
  <info>int</info>  Returns the unstable period factor for the corresponding function.


id: trader_ht_dcperiod
type: function
doc:
<comment>Description:</comment>
  Hilbert Transform - Dominant Cycle Period

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_ht_dcphase
type: function
doc:
<comment>Description:</comment>
  Hilbert Transform - Dominant Cycle Phase

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_ht_phasor
type: function
doc:
<comment>Description:</comment>
  Hilbert Transform - Phasor Components

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_ht_sine
type: function
doc:
<comment>Description:</comment>
  Hilbert Transform - SineWave

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_ht_trendline
type: function
doc:
<comment>Description:</comment>
  Hilbert Transform - Instantaneous Trendline

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_ht_trendmode
type: function
doc:
<comment>Description:</comment>
  Hilbert Transform - Trend vs Cycle Mode

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_kama
type: function
doc:
<comment>Description:</comment>
  Kaufman Adaptive 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_linearreg
type: function
doc:
<comment>Description:</comment>
  Linear Regression

<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_linearreg_angle
type: function
doc:
<comment>Description:</comment>
  Linear Regression Angle

<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_linearreg_intercept
type: function
doc:
<comment>Description:</comment>
  Linear Regression Intercept

<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_linearreg_slope
type: function
doc:
<comment>Description:</comment>
  Linear Regression Slope

<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_ln
type: function
doc:
<comment>Description:</comment>
  Vector Log Natural
  
  Calculates the natural logarithm for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_log10
type: function
doc:
<comment>Description:</comment>
  Vector Log10
  
  Calculates the base-10 logarithm for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_ma
type: function
doc:
<comment>Description:</comment>
  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.
  <info>int</info>    <strong>$mAType</strong>      Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

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


id: trader_macd
type: function
doc:
<comment>Description:</comment>
  Moving Average Convergence/Divergence

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>          Array of real values.
  <info>int</info>    <strong>$fastPeriod</strong>    Number of period for the fast MA. Valid range from 2 to 100000.
  <info>int</info>    <strong>$slowPeriod</strong>    Number of period for the slow MA. Valid range from 2 to 100000.
  <info>int</info>    <strong>$signalPeriod</strong>  Smoothing for the signal line (nb of 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_macdext
type: function
doc:
<comment>Description:</comment>
  MACD with controllable MA type

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>          Array of real values.
  <info>int</info>    <strong>$fastPeriod</strong>    Number of period for the fast MA. Valid range from 2 to 100000.
  <info>int</info>    <strong>$fastMAType</strong>    Type of Moving Average for fast MA. TRADER_MA_TYPE_* series of constants
                        should be used.
  <info>int</info>    <strong>$slowPeriod</strong>    Number of period for the slow MA. Valid range from 2 to 100000.
  <info>int</info>    <strong>$slowMAType</strong>    Type of Moving Average for slow MA. TRADER_MA_TYPE_* series of constants
                        should be used.
  <info>int</info>    <strong>$signalPeriod</strong>  Smoothing for the signal line (nb of period). Valid range from 1 to 100000.
  <info>int</info>    <strong>$signalMAType</strong>  Type of Moving Average for signal line. TRADER_MA_TYPE_* series of constants
                        should be used.

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


id: trader_macdfix
type: function
doc:
<comment>Description:</comment>
  Moving Average Convergence/Divergence Fix 12/26

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>          Array of real values.
  <info>int</info>    <strong>$signalPeriod</strong>  Smoothing for the signal line (nb of 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_mama
type: function
doc:
<comment>Description:</comment>
  MESA Adaptive Moving Average

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>       Array of real values.
  <info>float</info>  <strong>$fastLimit</strong>  Upper limit use in the adaptive algorithm. Valid range from 0.01 to 0.99.
  <info>float</info>  <strong>$slowLimit</strong>  Lower limit use in the adaptive algorithm. Valid range from 0.01 to 0.99.

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


id: trader_mavp
type: function
doc:
<comment>Description:</comment>
  Moving average with variable period

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>       Array of real values.
  <info>array</info>  <strong>$periods</strong>    Array of real values.
  <info>int</info>    <strong>$minPeriod</strong>  Value less than minimum will be changed to Minimum period. Valid range from 2
                     to 100000
  <info>int</info>    <strong>$maxPeriod</strong>  Value higher than minimum will be changed to Maximum period. Valid range from 2
                     to 100000
  <info>int</info>    <strong>$mAType</strong>     Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

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


id: trader_max
type: function
doc:
<comment>Description:</comment>
  Highest value over a specified period

<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_maxindex
type: function
doc:
<comment>Description:</comment>
  Index of highest value over a specified period

<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_medprice
type: function
doc:
<comment>Description:</comment>
  Median 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.

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


id: trader_mfi
type: function
doc:
<comment>Description:</comment>
  Money Flow Index

<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>array</info>  <strong>$volume</strong>      Volume traded, 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_midpoint
type: function
doc:
<comment>Description:</comment>
  MidPoint over period

<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_midprice
type: function
doc:
<comment>Description:</comment>
  Midpoint Price over period

<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>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_min
type: function
doc:
<comment>Description:</comment>
  Lowest value over a specified period

<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_minindex
type: function
doc:
<comment>Description:</comment>
  Index of lowest value over a specified period

<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_minmax
type: function
doc:
<comment>Description:</comment>
  Lowest and highest values over a specified period

<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_minmaxindex
type: function
doc:
<comment>Description:</comment>
  Indexes of lowest and highest values over a specified period

<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_minus_di
type: function
doc:
<comment>Description:</comment>
  Minus Directional Indicator

<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_minus_dm
type: function
doc:
<comment>Description:</comment>
  Minus Directional Movement

<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>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_mom
type: function
doc:
<comment>Description:</comment>
  Momentum

<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_mult
type: function
doc:
<comment>Description:</comment>
  Vector Arithmetic Mult
  
  Calculates the vector dot product of <strong>$real0</strong> with <strong>$real1</strong> and returns the resulting vector.

<comment>Param:</comment>
  <info>array</info>  <strong>$real0</strong>  Array of real values.
  <info>array</info>  <strong>$real1</strong>  Array of real values.

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


id: trader_natr
type: function
doc:
<comment>Description:</comment>
  Normalized Average True Range

<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_obv
type: function
doc:
<comment>Description:</comment>
  On Balance Volume

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>    Array of real values.
  <info>array</info>  <strong>$volume</strong>  Volume traded, array of real values.

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


id: trader_plus_di
type: function
doc:
<comment>Description:</comment>
  Plus Directional Indicator

<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_plus_dm
type: function
doc:
<comment>Description:</comment>
  Plus Directional Movement

<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>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_ppo
type: function
doc:
<comment>Description:</comment>
  Percentage Price Oscillator

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>        Array of real values.
  <info>int</info>    <strong>$fastPeriod</strong>  Number of period for the fast MA. Valid range from 2 to 100000.
  <info>int</info>    <strong>$slowPeriod</strong>  Number of period for the slow MA. Valid range from 2 to 100000.
  <info>int</info>    <strong>$mAType</strong>      Type of Moving Average. TRADER_MA_TYPE_* series of constants should be used.

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


id: trader_roc
type: function
doc:
<comment>Description:</comment>
  Rate of change : ((price/prevPrice)-1)*100

<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_rocp
type: function
doc:
<comment>Description:</comment>
  Rate of change Percentage: (price-prevPrice)/prevPrice

<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_rocr
type: function
doc:
<comment>Description:</comment>
  Rate of change ratio: (price/prevPrice)

<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_rocr100
type: function
doc:
<comment>Description:</comment>
  Rate of change ratio 100 scale: (price/prevPrice)*100

<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_rsi
type: function
doc:
<comment>Description:</comment>
  Relative Strength Index

<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_sar
type: function
doc:
<comment>Description:</comment>
  Parabolic SAR

<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>float</info>  <strong>$acceleration</strong>  Acceleration Factor used up to the Maximum value. Valid range from 0 to
                        TRADER_REAL_MAX.
  <info>float</info>  <strong>$maximum</strong>       Acceleration Factor Maximum value. Valid range from 0 to TRADER_REAL_MAX.

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


id: trader_sarext
type: function
doc:
<comment>Description:</comment>
  Parabolic SAR - Extended

<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>float</info>  <strong>$startValue</strong>             Start value and direction. 0 for Auto, &gt;0 for Long, \<0 for Short. Valid range from TRADER_REAL_MIN to TRADER_REAL_MAX.
  <info>float</info>  <strong>$offsetOnReverse</strong>        Percent offset added/removed to initial stop on short/long
                                 reversal. Valid range from 0 to TRADER_REAL_MAX.
  <info>float</info>  <strong>$accelerationInitLong</strong>   Acceleration Factor initial value for the Long direction. Valid
                                 range from 0 to TRADER_REAL_MAX.
  <info>float</info>  <strong>$accelerationLong</strong>       Acceleration Factor for the Long direction. Valid range from 0 to
                                 TRADER_REAL_MAX.
  <info>float</info>  <strong>$accelerationMaxLong</strong>    Acceleration Factor maximum value for the Long direction. Valid
                                 range from 0 to TRADER_REAL_MAX.
  <info>float</info>  <strong>$accelerationInitShort</strong>  Acceleration Factor initial value for the Short direction. Valid
                                 range from 0 to TRADER_REAL_MAX.
  <info>float</info>  <strong>$accelerationShort</strong>      Acceleration Factor for the Short direction. Valid range from 0 to
                                 TRADER_REAL_MAX.
  <info>float</info>  <strong>$accelerationMaxShort</strong>   Acceleration Factor maximum value for the Short direction. Valid
                                 range from 0 to TRADER_REAL_MAX.

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


id: trader_set_compat
type: function
doc:
<comment>Description:</comment>
  Set compatibility mode
  
  Set compatibility mode which will affect the way calculations are done by all the extension
  functions.

<comment>Param:</comment>
  <info>int</info>  <strong>$compatId</strong>  Compatibility Id. TRADER_COMPATIBILITY_* series of constants should be used.

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


id: trader_set_unstable_period
type: function
doc:
<comment>Description:</comment>
  Set unstable period
  
  Influences unstable period factor for functions, which are sensible to it. More information about
  unstable periods can be found on the TA-Lib API documentation page.

<comment>Param:</comment>
  <info>int</info>  <strong>$functionId</strong>  Function ID the factor should be set for. TRADER_FUNC_UNST_* constant series can
                    be used to affect the corresponding function.
  <info>int</info>  <strong>$timePeriod</strong>  Unstable period value.

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


id: trader_sin
type: function
doc:
<comment>Description:</comment>
  Vector Trigonometric Sin
  
  Calculates the sine for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_sinh
type: function
doc:
<comment>Description:</comment>
  Vector Trigonometric Sinh
  
  Calculates the hyperbolic sine for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_sma
type: function
doc:
<comment>Description:</comment>
  Simple 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_sqrt
type: function
doc:
<comment>Description:</comment>
  Vector Square Root
  
  Calculates the square root of each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_stddev
type: function
doc:
<comment>Description:</comment>
  Standard Deviation

<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_stoch
type: function
doc:
<comment>Description:</comment>
  Stochastic

<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>$fastK_Period</strong>  Time period for building the Fast-K line. Valid range from 1 to 100000.
  <info>int</info>    <strong>$slowK_Period</strong>  Smoothing for making the Slow-K line. Valid range from 1 to 100000, usually
                        set to 3.
  <info>int</info>    <strong>$slowK_MAType</strong>  Type of Moving Average for Slow-K. TRADER_MA_TYPE_* series of constants
                        should be used.
  <info>int</info>    <strong>$slowD_Period</strong>  Smoothing for making the Slow-D line. Valid range from 1 to 100000.
  <info>int</info>    <strong>$slowD_MAType</strong>  Type of Moving Average for Slow-D. TRADER_MA_TYPE_* series of constants
                        should be used.

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


id: trader_stochf
type: function
doc:
<comment>Description:</comment>
  Stochastic Fast

<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>$fastK_Period</strong>  Time period for building the Fast-K line. Valid range from 1 to 100000.
  <info>int</info>    <strong>$fastD_Period</strong>  Smoothing for making the Fast-D line. Valid range from 1 to 100000, usually
                        set to 3.
  <info>int</info>    <strong>$fastD_MAType</strong>  Type of Moving Average for Fast-D. TRADER_MA_TYPE_* series of constants
                        should be used.

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


id: trader_stochrsi
type: function
doc:
<comment>Description:</comment>
  Stochastic Relative Strength Index

<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>int</info>    <strong>$fastK_Period</strong>  Time period for building the Fast-K line. Valid range from 1 to 100000.
  <info>int</info>    <strong>$fastD_Period</strong>  Smoothing for making the Fast-D line. Valid range from 1 to 100000, usually
                        set to 3.
  <info>int</info>    <strong>$fastD_MAType</strong>  Type of Moving Average for Fast-D. TRADER_MA_TYPE_* series of constants
                        should be used.

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


id: trader_sub
type: function
doc:
<comment>Description:</comment>
  Vector Arithmetic Subtraction
  
  Calculates the vector subtraction of <strong>$real1</strong> from <strong>$real0</strong> and returns the resulting vector.

<comment>Param:</comment>
  <info>array</info>  <strong>$real0</strong>  Array of real values.
  <info>array</info>  <strong>$real1</strong>  Array of real values.

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


id: trader_sum
type: function
doc:
<comment>Description:</comment>
  Summation

<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_t3
type: function
doc:
<comment>Description:</comment>
  Triple Exponential Moving Average (T3)

<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>$vFactor</strong>     Volume Factor. Valid range from 1 to 0.

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


id: trader_tan
type: function
doc:
<comment>Description:</comment>
  Vector Trigonometric Tan
  
  Calculates the tangent for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_tanh
type: function
doc:
<comment>Description:</comment>
  Vector Trigonometric Tanh
  
  Calculates the hyperbolic tangent for each value in <strong>$real</strong> and returns the resulting array.

<comment>Param:</comment>
  <info>array</info>  <strong>$real</strong>  Array of real values.

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


id: trader_tema
type: function
doc:
<comment>Description:</comment>
  Triple Exponential 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_trange
type: function
doc:
<comment>Description:</comment>
  True Range

<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.


