# php_manual

id: imagepalettecopy
type: function
doc:
<comment>Description:</comment>
  Copy the palette from one image to another
  
  <strong>imagepalettecopy()</strong> copies the palette from the <strong>$src</strong> image to the  <strong>$dst</strong> image.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$dst</strong>  The destination image object.
  <info>GdImage</info>  <strong>$src</strong>  The source image object.

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


id: imagepalettetotruecolor
type: function
doc:
<comment>Description:</comment>
  Converts a palette based image to true color
  
  Converts a palette based image, created by functions like  <strong>imagecreate()</strong> to a true color image,
  like  <strong>imagecreatetruecolor()</strong>.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>  A <class>GdImage</class> object, returned by one of the image creation functions,
                   such as <strong>imagecreatetruecolor()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the convertion was complete, or if the source image already  is a true color
        image, otherwise <info>false</info> is returned.

<comment>See Also:</comment>
   * <strong>imagecreatetruecolor()</strong>
   * <strong>imageistruecolor()</strong>


id: imagepng
type: function
doc:
<comment>Description:</comment>
  Output a PNG image to either the browser or a file
  
  Outputs or saves a PNG image from the given  <strong>$image</strong>.

<comment>Param:</comment>
  <info>GdImage</info>               <strong>$image</strong>    A <class>GdImage</class> object, returned by one of the image creation functions,
                                  such as <strong>imagecreatetruecolor()</strong>.
  <info>resource|string|null</info>  <strong>$file</strong>     The path or an open stream resource (which is automatically closed
                                  after this function returns) to save the file to. If not set or
                                  <info>null</info>, the raw image stream will be output directly.
                                  
                                  <info>null</info> is invalid if the <strong>$quality</strong> and <strong>$filters</strong> arguments are not
                                  used.
  <info>int</info>                   <strong>$quality</strong>  Compression level: from 0 (no compression) to 9. The default (<return>-1</return>)
                                  uses the zlib compression default. For more information see the
                                  zlib manual.
  <info>int</info>                   <strong>$filters</strong>  Allows reducing the PNG file size. It is a bitmask field which may
                                  be set to any combination of the <return>PNG_FILTER_XXX</return>  constants.
                                  <info>PNG_NO_FILTER</info> or  <info>PNG_ALL_FILTERS</info> may also be used to respectively
                                  disable or activate all filters. The default value (<return>-1</return>) disables
                                  filtering.
                                  
                                  The <strong>$filters</strong> parameter is ignored by system libgd.

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

<comment>See Also:</comment>
   * <strong>imagegif()</strong>
   * <strong>imagewbmp()</strong>
   * <strong>imagejpeg()</strong>
   * <strong>imagetypes()</strong>
   * <strong>imagesavealpha()</strong>


id: imagepolygon
type: function
doc:
<comment>Description:</comment>
  Draws a polygon
  
  Signature as of PHP 8.0.0 (not supported with named arguments)
  
  Alternative signature (deprecated as of PHP 8.1.0)
  
  <strong>imagepolygon()</strong> creates a polygon in the given <strong>$image</strong>.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>       A <class>GdImage</class> object, returned by one of the image creation functions,
                        such as <strong>imagecreatetruecolor()</strong>.
  <info>array</info>    <strong>$points</strong>      An array containing the polygon's vertices, e.g.: points[0]= x0points[1]=
                        y0points[2]= x1points[3]= y1
  <info>int</info>      <strong>$num_points</strong>  Total number of points (vertices), which must be at least 3.
                        
                        If this parameter is omitted as per the second signature, <strong>$points</strong> must have
                        an even number of elements, and <strong>$num_points</strong> is assumed to be
                        count($points)/2.
  <info>int</info>      <strong>$color</strong>       A color identifier created with <strong>imagecolorallocate()</strong>.

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

<comment>See Also:</comment>
   * <strong>imagefilledpolygon()</strong>
   * <strong>imageopenpolygon()</strong>
   * <strong>imagecreate()</strong>
   * <strong>imagecreatetruecolor()</strong>


id: imagerectangle
type: function
doc:
<comment>Description:</comment>
  Draw a rectangle
  
  <strong>imagerectangle()</strong> creates a rectangle starting at the specified coordinates.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>  A <class>GdImage</class> object, returned by one of the image creation functions,
                   such as <strong>imagecreatetruecolor()</strong>.
  <info>int</info>      <strong>$x1</strong>     Upper left x coordinate.
  <info>int</info>      <strong>$y1</strong>     Upper left y coordinate 0, 0 is the top left corner of the image.
  <info>int</info>      <strong>$x2</strong>     Bottom right x coordinate.
  <info>int</info>      <strong>$y2</strong>     Bottom right y coordinate.
  <info>int</info>      <strong>$color</strong>  A color identifier created with <strong>imagecolorallocate()</strong>.

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


id: imageresolution
type: function
doc:
<comment>Description:</comment>
  Get or set the resolution of the image
  
  <strong>imageresolution()</strong> allows to set and get the resolution of an image in DPI (dots per inch). If the
  optional parameters are <info>null</info>, the current resolution is returned as an indexed array. If only
  <strong>$resolution_x</strong> is not <info>null</info>, the horizontal and vertical resolution are set to this value. If none
  of the optional parameters are <info>null</info>, the horizontal and vertical resolution are set to these
  values, respectively.
  
  The resolution is only used as meta information when images are read from and written to formats
  supporting this kind of information (curently PNG and JPEG). It does not affect any drawing
  operations. The default resolution for new images is 96 DPI.

<comment>Param:</comment>
  <info>GdImage</info>   <strong>$image</strong>         A <class>GdImage</class> object, returned by one of the image creation functions,
                           such as <strong>imagecreatetruecolor()</strong>.
  <info>int|null</info>  <strong>$resolution_x</strong>  The horizontal resolution in DPI.
  <info>int|null</info>  <strong>$resolution_y</strong>  The vertical resolution in DPI.

<comment>Return:</comment>
  <info>array|bool</info>  When used as getter, it returns an indexed array of the horizontal and vertical
              resolution on success,  or <info>false</info> on failure. When used as setter, it returns <info>true</info> on
              success,  or <info>false</info> on failure.


id: imagerotate
type: function
doc:
<comment>Description:</comment>
  Rotate an image with a given angle
  
  Rotates the <strong>$image</strong> image using the given <strong>$angle</strong> in degrees.
  
  The center of rotation is the center of the image, and the rotated image may have different
  dimensions than the original image.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>             A <class>GdImage</class> object, returned by one of the image creation functions,
                              such as <strong>imagecreatetruecolor()</strong>.
  <info>float</info>    <strong>$angle</strong>             Rotation angle, in degrees. The rotation angle is interpreted as the
                              number of degrees to rotate the image anticlockwise.
  <info>int</info>      <strong>$background_color</strong>  Specifies the color of the uncovered zone after the rotation

<comment>Return:</comment>
  <info>GdImage|false</info>  Returns an image object for the rotated image,  or <info>false</info> on failure.

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


id: imagesavealpha
type: function
doc:
<comment>Description:</comment>
  Whether to retain full alpha channel information when saving images
  
  <strong>imagesavealpha()</strong> sets the flag which determines whether to retain full alpha channel information
  (as opposed to single-color transparency) when saving images. This is only supported for image
  formats which support full alpha channel information, i.e. <return>PNG</return>, <return>WebP</return> and <return>AVIF</return>. <strong>imagesavealpha()</strong> is
  only meaningful for <return>PNG</return> images, since the full alpha channel is always saved for <return>WebP</return> and <return>AVIF</return>. It
  is not recommended to rely on this behavior, as it may change in the future. Thus,
  <strong>imagesavealpha()</strong> should be called deliberately also for <return>WebP</return> and <return>AVIF</return> images.
  
  <strong>imagesavealpha()</strong> is only meaningful for <return>PNG</return> images, since the full alpha channel is always saved
  for <return>WebP</return> and <return>AVIF</return>. It is not recommended to rely on this behavior, as it may change in the future.
  Thus, <strong>imagesavealpha()</strong> should be called deliberately also for <return>WebP</return> and <return>AVIF</return> images.
  
  Alphablending has to be disabled (imagealphablending($im, false)) to retain the alpha-channel in
  the first place.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>   A <class>GdImage</class> object, returned by one of the image creation functions,
                    such as <strong>imagecreatetruecolor()</strong>.
  <info>bool</info>     <strong>$enable</strong>  Whether to save the alpha channel or not. Defaults to <info>false</info>.

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

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


id: imagescale
type: function
doc:
<comment>Description:</comment>
  Scale an image using the given new width and height
  
  <strong>imagescale()</strong> scales an image using the given interpolation algorithm.
  
  Unlike many of other image functions, <strong>imagescale()</strong> does not modify the passed <strong>$image</strong>; instead, a
  new image is returned.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>   A <class>GdImage</class> object, returned by one of the image creation functions,
                    such as <strong>imagecreatetruecolor()</strong>.
  <info>int</info>      <strong>$width</strong>   The width to scale the image to.
  <info>int</info>      <strong>$height</strong>  The height to scale the image to. If omitted or negative, the aspect ratio will
                    be preserved.
  <info>int</info>      <strong>$mode</strong>    One of <info>IMG_NEAREST_NEIGHBOUR</info>, <info>IMG_BILINEAR_FIXED</info>, <info>IMG_BICUBIC</info>, <info>IMG_BICUBIC_FIXED</info>
                    or anything else (will use two pass). <info>IMG_WEIGHTED4</info> is not yet supported.
                    
                    <info>IMG_WEIGHTED4</info> is not yet supported.

<comment>Return:</comment>
  <info>GdImage|false</info>  Return the scaled image object on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>imagecopyresized()</strong>
   * <strong>imagecopyresampled()</strong>


id: imagesetbrush
type: function
doc:
<comment>Description:</comment>
  Set the brush image for line drawing
  
  <strong>imagesetbrush()</strong> sets the brush image to be used by all line drawing functions (such as <strong>imageline()</strong>
  and <strong>imagepolygon()</strong>) when drawing with the special colors <info>IMG_COLOR_BRUSHED</info> or
  <info>IMG_COLOR_STYLEDBRUSHED</info>.
  
  You need not take special action when you are finished with a brush, but if you destroy the brush
  image (or let PHP destroy it), you must not use the  <info>IMG_COLOR_BRUSHED</info> or <info>IMG_COLOR_STYLEDBRUSHED</info>
  colors until you have set a new brush image!

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>  A <class>GdImage</class> object, returned by one of the image creation functions,
                   such as <strong>imagecreatetruecolor()</strong>.
  <info>GdImage</info>  <strong>$brush</strong>  An image object.

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


id: imagesetclip
type: function
doc:
<comment>Description:</comment>
  Set the clipping rectangle
  
  <strong>imagesetclip()</strong> sets the current clipping rectangle, i.e. the area beyond which no pixels will be
  drawn.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>  A <class>GdImage</class> object, returned by one of the image creation functions,
                   such as <strong>imagecreatetruecolor()</strong>.
  <info>int</info>      <strong>$x1</strong>     The x-coordinate of the upper left corner.
  <info>int</info>      <strong>$y1</strong>     The y-coordinate of the upper left corner.
  <info>int</info>      <strong>$x2</strong>     The x-coordinate of the lower right corner.
  <info>int</info>      <strong>$y2</strong>     The y-coordinate of the lower right corner.

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

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


id: imagesetinterpolation
type: function
doc:
<comment>Description:</comment>
  Set the interpolation method
  
  Sets the interpolation method, setting an interpolation method affects the rendering  of various
  functions in GD, such as the <strong>imagerotate()</strong> function.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>   A <class>GdImage</class> object, returned by one of the image creation functions,
                    such as <strong>imagecreatetruecolor()</strong>.
  <info>int</info>      <strong>$method</strong>  The interpolation method, which can be one of the following: <info>IMG_BELL</info>: Bell
                    filter. <info>IMG_BESSEL</info>: Bessel filter. <info>IMG_BICUBIC</info>: Bicubic interpolation.
                    <info>IMG_BICUBIC_FIXED</info>: Fixed point implementation of the bicubic interpolation.
                    <info>IMG_BILINEAR_FIXED</info>: Fixed point implementation of the  bilinear interpolation
                    (<return>default (also on image creation)</return>). <info>IMG_BLACKMAN</info>: Blackman window function.
                    <info>IMG_BOX</info>: Box blur filter. <info>IMG_BSPLINE</info>: Spline interpolation. <info>IMG_CATMULLROM</info>:
                    Cubic Hermite spline interpolation. <info>IMG_GAUSSIAN</info>: Gaussian function.
                    <info>IMG_GENERALIZED_CUBIC</info>: Generalized cubic spline fractal interpolation.
                    <info>IMG_HERMITE</info>: Hermite interpolation. <info>IMG_HAMMING</info>: Hamming filter. <info>IMG_HANNING</info>:
                    Hanning filter. <info>IMG_MITCHELL</info>: Mitchell filter. <info>IMG_POWER</info>: Power interpolation.
                    <info>IMG_QUADRATIC</info>: Inverse quadratic interpolation. <info>IMG_SINC</info>: Sinc function.
                    <info>IMG_NEAREST_NEIGHBOUR</info>: Nearest neighbour interpolation. <info>IMG_WEIGHTED4</info>: Weighting
                    filter. <info>IMG_TRIANGLE</info>: Triangle interpolation.
                    
                    <info>IMG_BELL</info>: Bell filter.
                    
                    <info>IMG_BESSEL</info>: Bessel filter.
                    
                    <info>IMG_BICUBIC</info>: Bicubic interpolation.
                    
                    <info>IMG_BICUBIC_FIXED</info>: Fixed point implementation of the bicubic interpolation.
                    
                    <info>IMG_BILINEAR_FIXED</info>: Fixed point implementation of the  bilinear interpolation
                    (<return>default (also on image creation)</return>).
                    
                    <info>IMG_BLACKMAN</info>: Blackman window function.
                    
                    <info>IMG_BOX</info>: Box blur filter.
                    
                    <info>IMG_BSPLINE</info>: Spline interpolation.
                    
                    <info>IMG_CATMULLROM</info>: Cubic Hermite spline interpolation.
                    
                    <info>IMG_GAUSSIAN</info>: Gaussian function.
                    
                    <info>IMG_GENERALIZED_CUBIC</info>: Generalized cubic spline fractal interpolation.
                    
                    <info>IMG_HERMITE</info>: Hermite interpolation.
                    
                    <info>IMG_HAMMING</info>: Hamming filter.
                    
                    <info>IMG_HANNING</info>: Hanning filter.
                    
                    <info>IMG_MITCHELL</info>: Mitchell filter.
                    
                    <info>IMG_POWER</info>: Power interpolation.
                    
                    <info>IMG_QUADRATIC</info>: Inverse quadratic interpolation.
                    
                    <info>IMG_SINC</info>: Sinc function.
                    
                    <info>IMG_NEAREST_NEIGHBOUR</info>: Nearest neighbour interpolation.
                    
                    <info>IMG_WEIGHTED4</info>: Weighting filter.
                    
                    <info>IMG_TRIANGLE</info>: Triangle interpolation.

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

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


id: imagesetpixel
type: function
doc:
<comment>Description:</comment>
  Set a single pixel
  
  <strong>imagesetpixel()</strong> draws a pixel at the specified coordinate.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>  A <class>GdImage</class> object, returned by one of the image creation functions,
                   such as <strong>imagecreatetruecolor()</strong>.
  <info>int</info>      <strong>$x</strong>      x-coordinate.
  <info>int</info>      <strong>$y</strong>      y-coordinate.
  <info>int</info>      <strong>$color</strong>  A color identifier created with <strong>imagecolorallocate()</strong>.

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

<comment>See Also:</comment>
   * <strong>imagecreatetruecolor()</strong>
   * <strong>imagecolorallocate()</strong>
   * <strong>imagecolorat()</strong>


id: imagesetstyle
type: function
doc:
<comment>Description:</comment>
  Set the style for line drawing
  
  <strong>imagesetstyle()</strong> sets the style to be used by all line drawing functions (such as <strong>imageline()</strong> and
  <strong>imagepolygon()</strong>) when drawing with the special color <info>IMG_COLOR_STYLED</info> or lines of images with color
  <info>IMG_COLOR_STYLEDBRUSHED</info>.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>  A <class>GdImage</class> object, returned by one of the image creation functions,
                   such as <strong>imagecreatetruecolor()</strong>.
  <info>array</info>    <strong>$style</strong>  An array of pixel colors. You can use the  <info>IMG_COLOR_TRANSPARENT</info> constant to add
                   a  transparent pixel. Note that <strong>$style</strong> must not be an empty <info>array</info>.

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

<comment>See Also:</comment>
   * <strong>imagesetbrush()</strong>
   * <strong>imageline()</strong>


id: imagesetthickness
type: function
doc:
<comment>Description:</comment>
  Set the thickness for line drawing
  
  <strong>imagesetthickness()</strong> sets the thickness of the lines drawn when drawing rectangles, polygons, arcs
  etc. to <strong>$thickness</strong> pixels.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>      A <class>GdImage</class> object, returned by one of the image creation functions,
                       such as <strong>imagecreatetruecolor()</strong>.
  <info>int</info>      <strong>$thickness</strong>  Thickness, in pixels.

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


id: imagesettile
type: function
doc:
<comment>Description:</comment>
  Set the tile image for filling
  
  <strong>imagesettile()</strong> sets the tile image to be used by all region filling functions (such as <strong>imagefill()</strong>
  and <strong>imagefilledpolygon()</strong>) when filling with the special color <info>IMG_COLOR_TILED</info>.
  
  A tile is an image used to fill an area with a repeated pattern. Any GD image can be used as a
  tile, and by setting the transparent color index of the tile image with <strong>imagecolortransparent()</strong>, a
  tile allows certain parts of the underlying area to shine through can be created.
  
  You need not take special action when you are finished with a tile, but if you destroy the tile
  image (or let PHP destroy it), you must not use the <info>IMG_COLOR_TILED</info> color until you have set a new
  tile image!

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>  A <class>GdImage</class> object, returned by one of the image creation functions,
                   such as <strong>imagecreatetruecolor()</strong>.
  <info>GdImage</info>  <strong>$tile</strong>   The image object to be used as a tile.

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


id: imagestring
type: function
doc:
<comment>Description:</comment>
  Draw a string horizontally
  
  Draws a <strong>$string</strong> at the given coordinates.

<comment>Param:</comment>
  <info>GdImage</info>     <strong>$image</strong>   A <class>GdImage</class> object, returned by one of the image creation functions,
                       such as <strong>imagecreatetruecolor()</strong>.
  <info>GdFont|int</info>  <strong>$font</strong>    Can be 1, 2, 3, 4, 5 for built-in
                       fonts in latin2 encoding (where higher numbers corresponding to larger fonts)
                       or <class>GdFont</class> instance,
                       returned by <strong>imageloadfont()</strong>.
  <info>int</info>         <strong>$x</strong>       x-coordinate of the upper left corner.
  <info>int</info>         <strong>$y</strong>       y-coordinate of the upper left corner.
  <info>string</info>      <strong>$string</strong>  The string to be written.
  <info>int</info>         <strong>$color</strong>   A color identifier created with <strong>imagecolorallocate()</strong>.

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

<comment>See Also:</comment>
   * <strong>imagestringup()</strong>
   * <strong>imageloadfont()</strong>
   * <strong>imagettftext()</strong>


id: imagestringup
type: function
doc:
<comment>Description:</comment>
  Draw a string vertically
  
  Draws a <strong>$string</strong> vertically at the given coordinates.

<comment>Param:</comment>
  <info>GdImage</info>     <strong>$image</strong>   A <class>GdImage</class> object, returned by one of the image creation functions,
                       such as <strong>imagecreatetruecolor()</strong>.
  <info>GdFont|int</info>  <strong>$font</strong>    Can be 1, 2, 3, 4, 5 for built-in
                       fonts in latin2 encoding (where higher numbers corresponding to larger fonts)
                       or <class>GdFont</class> instance,
                       returned by <strong>imageloadfont()</strong>.
  <info>int</info>         <strong>$x</strong>       x-coordinate of the bottom left corner.
  <info>int</info>         <strong>$y</strong>       y-coordinate of the bottom left corner.
  <info>string</info>      <strong>$string</strong>  The string to be written.
  <info>int</info>         <strong>$color</strong>   A color identifier created with <strong>imagecolorallocate()</strong>.

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

<comment>See Also:</comment>
   * <strong>imagestring()</strong>
   * <strong>imageloadfont()</strong>


id: imagesx
type: function
doc:
<comment>Description:</comment>
  Get image width
  
  Returns the width of the given <strong>$image</strong> object.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>  A <class>GdImage</class> object, returned by one of the image creation functions,
                   such as <strong>imagecreatetruecolor()</strong>.

<comment>Return:</comment>
  <info>int</info>  Return the width of the <strong>$image</strong>.

<comment>See Also:</comment>
   * <strong>imagecreatetruecolor()</strong>
   * <strong>getimagesize()</strong>
   * <strong>imagesy()</strong>


id: imagesy
type: function
doc:
<comment>Description:</comment>
  Get image height
  
  Returns the height of the given <strong>$image</strong> object.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>  A <class>GdImage</class> object, returned by one of the image creation functions,
                   such as <strong>imagecreatetruecolor()</strong>.

<comment>Return:</comment>
  <info>int</info>  Return the height of the <strong>$image</strong>.

<comment>See Also:</comment>
   * <strong>imagecreatetruecolor()</strong>
   * <strong>getimagesize()</strong>
   * <strong>imagesx()</strong>


id: imagetruecolortopalette
type: function
doc:
<comment>Description:</comment>
  Convert a true color image to a palette image
  
  <strong>imagetruecolortopalette()</strong> converts a truecolor image to a palette image. The code for this
  function was originally drawn from the Independent JPEG Group library code, which is excellent.
  The code has been modified to preserve as much alpha channel information as possible in the
  resulting palette, in addition to preserving colors as well as possible. This does not work as
  well as might be hoped. It is usually best to simply produce a truecolor output image instead,
  which guarantees the highest output quality.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>       A <class>GdImage</class> object, returned by one of the image creation functions,
                        such as <strong>imagecreatetruecolor()</strong>.
  <info>bool</info>     <strong>$dither</strong>      Indicates if the image should be dithered - if it is <info>true</info> then dithering
                        will be used which will result in a more speckled image but with better
                        color approximation.
  <info>int</info>      <strong>$num_colors</strong>  Sets the maximum number of colors that should be retained in the palette.

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


id: imagettfbbox
type: function
doc:
<comment>Description:</comment>
  Give the bounding box of a text using TrueType fonts
  
  This function calculates and returns the bounding box in pixels for a TrueType text.
  
  Prior to PHP 8.0.0, <strong>imageftbbox()</strong> was an extended variant of <strong>imagettfbbox()</strong> which additionally
  supported the <strong>$extrainfo</strong>. As of PHP 8.0.0, <strong>imagettfbbox()</strong> is an alias of <strong>imageftbbox()</strong>.

<comment>Param:</comment>
  <info>float</info>   <strong>$size</strong>      The font size in points.
  <info>float</info>   <strong>$angle</strong>     Angle in degrees in which <strong>$string</strong> will be measured.
  <info></info>        <strong>$fontfile</strong>  The path to the TrueType font you wish to use.
                     
                     Depending on which version of the GD library PHP is using, when <strong>$fontfile</strong> does
                     not begin with a leading <return>/</return> then <return>.ttf</return> will be appended to the filename and the
                     library will attempt to search for that filename along a library-defined font
                     path.
                     
                     When using versions of the GD library lower than 2.0.18, a <return>space</return> character,
                     rather than a semicolon, was used as the 'path separator' for different font
                     files. Unintentional use of this feature will result in the warning message:
                     <return>Warning: Could not find/open font</return>. For these affected versions, the only
                     solution is moving the font to a path which does not contain spaces.
                     
                     In many cases where a font resides in the same directory as the script using it
                     the following trick will alleviate any include problems.
                     ]]>
                     
                     Note that open_basedir does not apply to <strong>$fontfile</strong>.
  <info>string</info>  <strong>$string</strong>    The string to be measured.

<comment>Return:</comment>
  <info>array|false</info>  <strong>imagettfbbox()</strong> returns an array with 8 elements representing four points making the
               bounding box of the text on success and <info>false</info> on error. keycontents0lower left
               corner, X position1lower left corner, Y position2lower right corner, X position3lower
               right corner, Y position4upper right corner, X position5upper right corner, Y
               position6upper left corner, X position7upper left corner, Y position
               
               The points are relative to the text regardless of the <strong>$angle</strong>, so "upper left" means
               in the top left-hand  corner seeing the text horizontally.

<comment>See Also:</comment>
   * <strong>imagettftext()</strong>
   * <strong>imageftbbox()</strong>


id: imagettftext
type: function
doc:
<comment>Description:</comment>
  Write text to the image using TrueType fonts
  
  Writes the given <strong>$text</strong> into the image using TrueType fonts.
  
  Prior to PHP 8.0.0, <strong>imagefttext()</strong> was an extended variant of <strong>imagettftext()</strong> which additionally
  supported the <strong>$extrainfo</strong>. As of PHP 8.0.0, <strong>imagettftext()</strong> is an alias of <strong>imagefttext()</strong>.

<comment>Param:</comment>
  <info>GdImage</info>  <strong>$image</strong>     A <class>GdImage</class> object, returned by one of the image creation functions,
                      such as <strong>imagecreatetruecolor()</strong>.
  <info>float</info>    <strong>$size</strong>      The font size in points.
  <info>float</info>    <strong>$angle</strong>     The angle in degrees, with 0 degrees being left-to-right reading text. Higher
                      values represent a counter-clockwise rotation. For example, a  value of 90
                      would result in bottom-to-top reading text.
  <info>int</info>      <strong>$x</strong>         The coordinates given by <strong>$x</strong> and <strong>$y</strong> will define the basepoint of the first
                      character (roughly the lower-left corner of the character). This is different
                      from the <strong>imagestring()</strong>, where <strong>$x</strong> and <strong>$y</strong> define the upper-left corner of the
                      first character. For example, "top left" is 0, 0.
  <info>int</info>      <strong>$y</strong>         The y-ordinate. This sets the position of the fonts baseline, not the very
                      bottom of the character.
  <info>int</info>      <strong>$color</strong>     The color index. Using the negative of a color index has the effect of turning
                      off antialiasing. See <strong>imagecolorallocate()</strong>.
  <info></info>         <strong>$fontfile</strong>  The path to the TrueType font you wish to use.
                      
                      Depending on which version of the GD library PHP is using, when <strong>$fontfile</strong> does
                      not begin with a leading <return>/</return> then <return>.ttf</return> will be appended to the filename and the
                      library will attempt to search for that filename along a library-defined font
                      path.
                      
                      When using versions of the GD library lower than 2.0.18, a <return>space</return> character,
                      rather than a semicolon, was used as the 'path separator' for different font
                      files. Unintentional use of this feature will result in the warning message:
                      <return>Warning: Could not find/open font</return>. For these affected versions, the only
                      solution is moving the font to a path which does not contain spaces.
                      
                      In many cases where a font resides in the same directory as the script using
                      it the following trick will alleviate any include problems.
                      ]]>
                      
                      Note that open_basedir does not apply to <strong>$fontfile</strong>.
  <info>string</info>   <strong>$text</strong>      The text string in UTF-8 encoding.
                      
                      May include decimal numeric character references (of the form: &#8364;) to
                      access characters in a font beyond position 127. The hexadecimal format (like
                      &#xA9;) is supported. Strings in UTF-8 encoding can be passed directly.
                      
                      Named entities, such as &copy;, are not supported. Consider using
                      <strong>html_entity_decode()</strong> to decode these named entities into UTF-8 strings.
                      
                      If a character is used in the string which is not supported by the font, a
                      hollow rectangle will replace the character.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array with 8 elements representing four points making the bounding box of
               the text. The order of the points is lower left, lower  right, upper right, upper
               left. The points are relative to the text regardless of the angle, so "upper left"
               means in the top left-hand  corner when you see the text horizontally. Returns <info>false</info>
               on error.

<comment>See Also:</comment>
   * <strong>imagettfbbox()</strong>
   * <strong>imagefttext()</strong>


id: imagetypes
type: function
doc:
<comment>Description:</comment>
  Return the image types supported by this PHP build
  
  Returns the image types supported by the current PHP installation.

<comment>Return:</comment>
  <info>int</info>  Returns a bit-field corresponding to the image formats supported by the version of GD linked
       into PHP.  The following bits are returned, <info>IMG_AVIF</info> | <info>IMG_BMP</info> | <info>IMG_GIF</info> | <info>IMG_JPG</info> | <info>IMG_PNG</info>
       | <info>IMG_WBMP</info> |  <info>IMG_XPM</info> | <info>IMG_WEBP</info>.

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


id: imagewbmp
type: function
doc:
<comment>Description:</comment>
  Output image to browser or file
  
  <strong>imagewbmp()</strong> outputs or save a WBMP version of the given <strong>$image</strong>.

<comment>Param:</comment>
  <info>GdImage</info>               <strong>$image</strong>             A <class>GdImage</class> object, returned by one of the image creation
                                           functions,
                                           such as <strong>imagecreatetruecolor()</strong>.
  <info>resource|string|null</info>  <strong>$file</strong>              The path or an open stream resource (which is
                                           automatically closed after this function returns) to save
                                           the file to. If not set or <info>null</info>, the raw image stream
                                           will be output directly.
  <info>int|null</info>              <strong>$foreground_color</strong>  You can set the foreground color with this parameter by
                                           setting an identifier obtained from <strong>imagecolorallocate()</strong>.
                                           The default foreground color is black.

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

<comment>See Also:</comment>
   * <strong>image2wbmp()</strong>
   * <strong>imagepng()</strong>
   * <strong>imagegif()</strong>
   * <strong>imagejpeg()</strong>
   * <strong>imagetypes()</strong>


id: imagewebp
type: function
doc:
<comment>Description:</comment>
  Output a WebP image to browser or file
  
  Outputs or saves a WebP version of the given <strong>$image</strong>.

<comment>Param:</comment>
  <info>GdImage</info>               <strong>$image</strong>    A <class>GdImage</class> object, returned by one of the image creation functions,
                                  such as <strong>imagecreatetruecolor()</strong>.
  <info>resource|string|null</info>  <strong>$file</strong>     The path or an open stream resource (which is automatically closed
                                  after this function returns) to save the file to. If not set or
                                  <info>null</info>, the raw image stream will be output directly.
  <info>int</info>                   <strong>$quality</strong>  <strong>$quality</strong> ranges from 0 (worst quality, smaller file) to 100 (best
                                  quality, biggest file).

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


id: imagexbm
type: function
doc:
<comment>Description:</comment>
  Output an XBM image to browser or file
  
  Outputs or save an XBM version of the given  <strong>$image</strong>.
  
  <strong>imagexbm()</strong> doesn't apply any padding, so the image width has to be a multiple of 8. This
  restriction does no longer apply as of PHP 7.0.9.

<comment>Param:</comment>
  <info>GdImage</info>      <strong>$image</strong>             A <class>GdImage</class> object, returned by one of the image creation functions,
                                  such as <strong>imagecreatetruecolor()</strong>.
  <info>string|null</info>  <strong>$filename</strong>          The path to save the file to, given as <info>string</info>. If <info>null</info>, the raw
                                  image stream will be output directly.
                                  
                                  The <strong>$filename</strong> (without the .xbm extension) is also used for the C
                                  identifiers of the XBM, whereby non alphanumeric characters of the
                                  current locale are substituted by underscores. If <strong>$filename</strong> is set
                                  to <info>null</info>, <return>image</return> is used to build the C identifiers.
  <info>int|null</info>     <strong>$foreground_color</strong>  You can set the foreground color with this parameter by setting an
                                  identifier obtained from <strong>imagecolorallocate()</strong>. The default
                                  foreground color is black. All other colors are treated as
                                  background.

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


id: imagick::ALPHACHANNEL_ACTIVATE
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.3.8 or
  higher.


id: imagick::ALPHACHANNEL_ASSOCIATE
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.9.0 or
  higher.


id: imagick::ALPHACHANNEL_BACKGROUND
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.5.3 or
  higher.


id: imagick::ALPHACHANNEL_COPY
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.4.6 or
  higher.


id: imagick::ALPHACHANNEL_DISCRETE
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 7.0.0 or
  higher.


id: imagick::ALPHACHANNEL_REMOVE
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.7.8 or
  higher.


id: imagick::COLORSPACE_CMY
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.4.2 or
  higher.


id: imagick::COMPOSITE_EXCLUSION
type: constant
doc:
<comment>Description:</comment>
  Produces an effect similar to that of imagick::COMPOSITE_DIFFERENCE, but appears as lower contrast


id: imagick::COMPRESSION_DXT1
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.4.0 or
  higher.


id: imagick::DISTORTION_AFFINE
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.3.6 or
  higher.


id: imagick::EVALUATE_ADDMODULUS
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.4.4 or
  higher.


id: imagick::FUNCTION_POLYNOMIAL
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.4.9 or
  higher.


id: imagick::INTERLACE_GIF
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.3.4 or
  higher.


id: imagick::INTERPOLATE_AVERAGE
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.3.2 or
  higher.


id: imagick::LAYERMETHOD_COALESCE
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.2.9 or
  higher.


id: imagick::LAYERMETHOD_COMPOSITE
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.3.0 or
  higher.


id: imagick::LAYERMETHOD_FLATTEN
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.3.7 or
  higher.


id: imagick::RESOURCETYPE_AREA
type: constant
doc:
<comment>Description:</comment>
  Set the maximum width * height of an image that can reside in the pixel cache memory.


id: imagick::RESOURCETYPE_DISK
type: constant
doc:
<comment>Description:</comment>
  Set maximum amount of disk space in bytes permitted for use by the pixel cache.


id: imagick::RESOURCETYPE_MAP
type: constant
doc:
<comment>Description:</comment>
  Set maximum amount of memory map in bytes to allocate for the pixel cache.


id: imagick::RESOURCETYPE_MEMORY
type: constant
doc:
<comment>Description:</comment>
  Set maximum amount of memory in bytes to allocate for the pixel cache from the heap.


id: imagick::RESOURCETYPE_THREAD
type: constant
doc:
<comment>Description:</comment>
  Set maximum parallel threads. This constant is available if Imagick has been compiled against
  ImageMagick version 6.7.8 or higher.


id: imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE
type: constant
doc:
<comment>Description:</comment>
  This constant is available if Imagick has been compiled against ImageMagick version 6.4.3 or
  higher.


id: imap_8bit
type: function
doc:
<comment>Description:</comment>
  Convert an 8bit string to a quoted-printable string
  
  Convert an 8bit string to a quoted-printable string (according to RFC2045, section 6.7).

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The 8bit string to convert

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

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


id: imap_alerts
type: function
doc:
<comment>Description:</comment>
  Returns all IMAP alert messages that have occurred
  
  Returns all of the IMAP alert messages generated since the last <strong>imap_alerts()</strong> call, or the
  beginning of the page.
  
  When <strong>imap_alerts()</strong> is called, the alert stack is subsequently cleared. The IMAP specification
  requires that these messages be passed to the user.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of all of the IMAP alert messages generated or <info>false</info> if no alert
               messages are available.

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


id: imap_append
type: function
doc:
<comment>Description:</comment>
  Append a string message to a specified mailbox
  
  Appends a string <strong>$message</strong> to the specified <strong>$folder</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>           An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$folder</strong>         The mailbox name, see <strong>imap_open()</strong> for more information
                                   
                                   Passing untrusted data to this parameter is insecure, unless
                                   imap.enable_insecure_rsh is disabled.
  <info>string</info>           <strong>$message</strong>        The message to be append, as a string
                                   
                                   When talking to the Cyrus IMAP server, you must use "\r\n" as
                                   your end-of-line terminator instead of "\n" or the operation will
                                   fail
  <info>string|null</info>      <strong>$options</strong>        If provided, the <strong>$options</strong> will also be written to the <strong>$folder</strong>
  <info>string|null</info>      <strong>$internal_date</strong>  If this parameter is set, it will set the INTERNALDATE on the
                                   appended message.  The parameter should be a date string that
                                   conforms to the rfc2060 specifications for a date_time value.

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


id: imap_base64
type: function
doc:
<comment>Description:</comment>
  Decode BASE64 encoded text
  
  Decodes the given BASE-64 encoded <strong>$string</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The encoded text

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

<comment>See Also:</comment>
   * <strong>imap_binary()</strong>
   * <strong>base64_encode()</strong>
   * <strong>base64_decode()</strong>
   * RFC2045, Section 6.8


id: imap_binary
type: function
doc:
<comment>Description:</comment>
  Convert an 8bit string to a base64 string
  
  Convert an 8bit string to a base64 string according to RFC2045, Section 6.8.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The 8bit string

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

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


id: imap_body
type: function
doc:
<comment>Description:</comment>
  Read the message body
  
  <strong>imap_body()</strong> returns the body of the message, numbered <strong>$message_num</strong> in the current mailbox.
  
  <strong>imap_body()</strong> will only return a verbatim copy of the message body. To extract single parts of a
  multipart MIME-encoded message you have to use <strong>imap_fetchstructure()</strong> to analyze its structure and
  <strong>imap_fetchbody()</strong> to extract a copy of a single body component.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>         An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$message_num</strong>  The message number
  <info>int</info>              <strong>$flags</strong>        The optional <strong>$flags</strong> are a bit mask with one or more of the
                                 following: <info>FT_UID</info> - The <strong>$message_num</strong> is a UID <info>FT_PEEK</info> - Do not set
                                 the \Seen flag if not already set <info>FT_INTERNAL</info> - The return string
                                 is in internal format, will not canonicalize to CRLF.
                                 
                                 <info>FT_UID</info> - The <strong>$message_num</strong> is a UID
                                 
                                 <info>FT_PEEK</info> - Do not set the \Seen flag if not already set
                                 
                                 <info>FT_INTERNAL</info> - The return string is in internal format, will not
                                 canonicalize to CRLF.

<comment>Return:</comment>
  <info>string|false</info>  Returns the body of the specified message, as a string,  or <info>false</info> on failure.


id: imap_bodystruct
type: function
doc:
<comment>Description:</comment>
  Read the structure of a specified body section of a specific message
  
  Read the structure of a specified body section of a specific message.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>         An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$message_num</strong>  The message number
  <info>string</info>           <strong>$section</strong>      The body section to read

<comment>Return:</comment>
  <info>stdClass|false</info>  Returns the information in an object,  or <info>false</info> on failure. For a detailed
                  description of the object structure and properties see  <strong>imap_fetchstructure()</strong>.

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


id: imap_check
type: function
doc:
<comment>Description:</comment>
  Check current mailbox
  
  Checks information about the current mailbox.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>  An <class>IMAP\Connection</class> instance.

<comment>Return:</comment>
  <info>stdClass|false</info>  Returns the information in an object with following properties: <info>Date</info> - current
                  system time formatted according to RFC2822 <info>Driver</info> - protocol used to access this
                  mailbox: POP3, IMAP, NNTP <info>Mailbox</info> - the mailbox name <info>Nmsgs</info> - number of messages in
                  the mailbox <info>Recent</info> - number of recent messages in the mailbox
                  
                  <info>Date</info> - current system time formatted according to RFC2822
                  
                  <info>Driver</info> - protocol used to access this mailbox: POP3, IMAP, NNTP
                  
                  <info>Mailbox</info> - the mailbox name
                  
                  <info>Nmsgs</info> - number of messages in the mailbox
                  
                  <info>Recent</info> - number of recent messages in the mailbox
                  
                  Returns <info>false</info> on failure.


id: imap_clearflag_full
type: function
doc:
<comment>Description:</comment>
  Clears flags on messages
  
  This function causes a store to delete the specified <strong>$flag</strong> to the flags set for the messages in
  the specified <strong>$sequence</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>      An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$sequence</strong>  A sequence of message numbers. You can enumerate desired messages with
                              the <return>X,Y</return> syntax, or retrieve all messages  within an interval with the
                              <return>X:Y</return> syntax
  <info>string</info>           <strong>$flag</strong>      The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged",
                              "\\Deleted", and "\\Draft" (as defined by RFC2060)
  <info>int</info>              <strong>$options</strong>   <strong>$options</strong> are a bit mask and may contain the single option: <info>ST_UID</info> -
                              The sequence argument contains UIDs instead of sequence numbers
                              
                              <info>ST_UID</info> - The sequence argument contains UIDs instead of sequence
                              numbers

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

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


id: imap_close
type: function
doc:
<comment>Description:</comment>
  Close an IMAP stream
  
  Closes the imap stream.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>   An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$flags</strong>  If set to <info>CL_EXPUNGE</info>, the function will silently expunge the mailbox
                           before closing, removing all messages marked for deletion. You can
                           achieve the same thing by using <strong>imap_expunge()</strong>

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

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


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


id: imap_createmailbox
type: function
doc:
<comment>Description:</comment>
  Create a new mailbox
  
  Creates a new mailbox specified by <strong>$mailbox</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>     An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$mailbox</strong>  The mailbox name, see <strong>imap_open()</strong> for more information. Names
                             containing international characters should be encoded by
                             <strong>imap_utf7_encode()</strong>
                             
                             Passing untrusted data to this parameter is insecure, unless
                             imap.enable_insecure_rsh is disabled.

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

<comment>See Also:</comment>
   * <strong>imap_renamemailbox()</strong>
   * <strong>imap_deletemailbox()</strong>


id: imap_delete
type: function
doc:
<comment>Description:</comment>
  Mark a message for deletion from current mailbox
  
  Marks messages listed in <strong>$message_nums</strong> for deletion. Messages marked for deletion will stay in the
  mailbox until either <strong>imap_expunge()</strong> is called or <strong>imap_close()</strong> is called with the optional
  parameter <info>CL_EXPUNGE</info>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>          An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$message_nums</strong>  A <info>string</info> representing one or more messages in IMAP4-style sequence
                                  format (<return>"n"</return>, <return>"n:m"</return>, or combination of these delimited by commas).
  <info>int</info>              <strong>$flags</strong>         You can set the <info>FT_UID</info> which tells the function to treat the
                                  <strong>$message_nums</strong> argument as a <return>UID</return>.

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

<comment>See Also:</comment>
   * <strong>imap_undelete()</strong>
   * <strong>imap_expunge()</strong>
   * <strong>imap_close()</strong>


id: imap_deletemailbox
type: function
doc:
<comment>Description:</comment>
  Delete a mailbox
  
  Deletes the specified <strong>$mailbox</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>     An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$mailbox</strong>  The mailbox name, see <strong>imap_open()</strong> for more information
                             
                             Passing untrusted data to this parameter is insecure, unless
                             imap.enable_insecure_rsh is disabled.

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

<comment>See Also:</comment>
   * <strong>imap_createmailbox()</strong>
   * <strong>imap_renamemailbox()</strong>
   * <strong>imap_open()</strong> for the format of
     <strong>$mbox</strong>
    


id: imap_errors
type: function
doc:
<comment>Description:</comment>
  Returns all of the IMAP errors that have occurred
  
  Gets all of the IMAP errors (if any) that have occurred during this page request or since the
  error stack was reset.
  
  When <strong>imap_errors()</strong> is called, the error stack is subsequently cleared.

<comment>Return:</comment>
  <info>array|false</info>  This function returns an array of all of the IMAP error messages generated since the
               last <strong>imap_errors()</strong> call, or the beginning of the page. Returns <info>false</info> if no error
               messages are available.

<comment>See Also:</comment>
   * <strong>imap_last_error()</strong>
   * <strong>imap_alerts()</strong>


id: imap_expunge
type: function
doc:
<comment>Description:</comment>
  Delete all messages marked for deletion
  
  Deletes all the messages marked for deletion by  <strong>imap_delete()</strong>, <strong>imap_mail_move()</strong>, or
  <strong>imap_setflag_full()</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>  An <class>IMAP\Connection</class> instance.

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


id: imap_fetch_overview
type: function
doc:
<comment>Description:</comment>
  Read an overview of the information in the headers of the given message
  
  This function fetches mail headers for the given <strong>$sequence</strong> and returns an overview of their
  contents.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>      An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$sequence</strong>  A message sequence description. You can enumerate desired messages
                              with the <return>X,Y</return> syntax, or retrieve all messages  within an interval with
                              the <return>X:Y</return> syntax
  <info>int</info>              <strong>$flags</strong>     <strong>$sequence</strong> will contain a sequence of message indices or UIDs, if this
                              parameter is set to  <info>FT_UID</info>.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of objects describing one message header each. The object will only
               define a property if it exists. The possible properties are: <return>subject</return> - the messages
               subject <return>from</return> - who sent it <return>to</return> - recipient <return>date</return> - when was it sent <return>message_id</return> -
               Message-ID <return>references</return> - is a reference to this message id <return>in_reply_to</return> - is a reply to
               this message id <return>size</return> - size in bytes <return>uid</return> - UID the message has in the mailbox <return>msgno</return> -
               message sequence number in the mailbox <return>recent</return> - this message is flagged as recent
               <return>flagged</return> -  this message is flagged <return>answered</return> -  this message is flagged as answered
               <return>deleted</return> -  this message is flagged for deletion <return>seen</return> -  this message is flagged as
               already read <return>draft</return> -  this message is flagged as being a draft <return>udate</return> -  the UNIX
               timestamp of the arrival date  The function returns <info>false</info> on failure.
               
               <return>subject</return> - the messages subject
               
               <return>from</return> - who sent it
               
               <return>to</return> - recipient
               
               <return>date</return> - when was it sent
               
               <return>message_id</return> - Message-ID
               
               <return>references</return> - is a reference to this message id
               
               <return>in_reply_to</return> - is a reply to this message id
               
               <return>size</return> - size in bytes
               
               <return>uid</return> - UID the message has in the mailbox
               
               <return>msgno</return> - message sequence number in the mailbox
               
               <return>recent</return> - this message is flagged as recent
               
               <return>flagged</return> -  this message is flagged
               
               <return>answered</return> -  this message is flagged as answered
               
               <return>deleted</return> -  this message is flagged for deletion
               
               <return>seen</return> -  this message is flagged as already read
               
               <return>draft</return> -  this message is flagged as being a draft
               
               <return>udate</return> -  the UNIX timestamp of the arrival date

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


id: imap_fetchbody
type: function
doc:
<comment>Description:</comment>
  Fetch a particular section of the body of the message
  
  Fetch of a particular section of the body of the specified messages.  Body parts are not decoded
  by this function.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>         An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$message_num</strong>  The message number
  <info>string</info>           <strong>$section</strong>      The part number. It is a string of integers delimited by period
                                 which index into a body part list as per the IMAP4 specification
  <info>int</info>              <strong>$flags</strong>        A bitmask with one or more of the following: <info>FT_UID</info> - The
                                 <strong>$message_num</strong> is a UID <info>FT_PEEK</info> - Do not set the \Seen flag if not
                                 already set <info>FT_INTERNAL</info> - The return string is in internal format,
                                 will not canonicalize to CRLF.
                                 
                                 <info>FT_UID</info> - The <strong>$message_num</strong> is a UID
                                 
                                 <info>FT_PEEK</info> - Do not set the \Seen flag if not already set
                                 
                                 <info>FT_INTERNAL</info> - The return string is in internal format, will not
                                 canonicalize to CRLF.

<comment>Return:</comment>
  <info>string|false</info>  Returns a particular section of the body of the specified messages as a text string,
                or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>imap_savebody()</strong>
   * <strong>imap_fetchstructure()</strong>


id: imap_fetchheader
type: function
doc:
<comment>Description:</comment>
  Returns header for a message
  
  This function causes a fetch of the complete, unfiltered RFC2822 format header of the specified
  message.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>         An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$message_num</strong>  The message number
  <info>int</info>              <strong>$flags</strong>        The possible <strong>$flags</strong> are: <info>FT_UID</info> - The <strong>$message_num</strong> argument is a
                                 UID <info>FT_INTERNAL</info> - The return string is in "internal" format,
                                 without any attempt to canonicalize to CRLF newlines
                                 <info>FT_PREFETCHTEXT</info> - The RFC822.TEXT should be pre-fetched at the same
                                 time.  This avoids an extra RTT on an IMAP connection if a full
                                 message text is desired (e.g. in a "save to local file" operation)
                                 
                                 <info>FT_UID</info> - The <strong>$message_num</strong> argument is a UID
                                 
                                 <info>FT_INTERNAL</info> - The return string is in "internal" format, without
                                 any attempt to canonicalize to CRLF newlines
                                 
                                 <info>FT_PREFETCHTEXT</info> - The RFC822.TEXT should be pre-fetched at the same
                                 time.  This avoids an extra RTT on an IMAP connection if a full
                                 message text is desired (e.g. in a "save to local file" operation)

<comment>Return:</comment>
  <info>string|false</info>  Returns the header of the specified message as a text string,  or <info>false</info> on failure.

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


id: imap_fetchmime
type: function
doc:
<comment>Description:</comment>
  Fetch MIME headers for a particular section of the message
  
  Fetch the MIME headers of a particular section of the body of the specified messages.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>         An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$message_num</strong>  The message number
  <info>string</info>           <strong>$section</strong>      The part number. It is a string of integers delimited by period
                                 which index into a body part list as per the IMAP4 specification
  <info>int</info>              <strong>$flags</strong>        A bitmask with one or more of the following: <info>FT_UID</info> - The
                                 <strong>$message_num</strong> is a UID <info>FT_PEEK</info> - Do not set the \Seen flag if not
                                 already set <info>FT_INTERNAL</info> - The return string is in internal format,
                                 will not canonicalize to CRLF.
                                 
                                 <info>FT_UID</info> - The <strong>$message_num</strong> is a UID
                                 
                                 <info>FT_PEEK</info> - Do not set the \Seen flag if not already set
                                 
                                 <info>FT_INTERNAL</info> - The return string is in internal format, will not
                                 canonicalize to CRLF.

<comment>Return:</comment>
  <info>string|false</info>  Returns the MIME headers of a particular section of the body of the specified
                messages as a text string,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>imap_fetchbody()</strong>
   * <strong>imap_fetchstructure()</strong>
   * <strong>imap_fetchheader()</strong>


id: imap_fetchstructure
type: function
doc:
<comment>Description:</comment>
  Read the structure of a particular message
  
  Fetches all the structured information for a given message.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>         An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$message_num</strong>  The message number
  <info>int</info>              <strong>$flags</strong>        This optional parameter only has a single option,  <info>FT_UID</info>, which
                                 tells the function to treat the <strong>$message_num</strong> argument as a  <return>UID</return>.

<comment>Return:</comment>
  <info>stdClass|false</info>  Returns an object with properties listed in the table below,  or <info>false</info> on failure.
                  
                   Returned Object for <strong>imap_fetchstructure()</strong> typePrimary body typeencodingBody
                  transfer encodingifsubtype<info>true</info> if there is a subtype stringsubtypeMIME
                  subtypeifdescription<info>true</info> if there is a description stringdescriptionContent
                  description stringifid<info>true</info> if there is an identification stringidIdentification
                  stringlinesNumber of linesbytesNumber of bytesifdisposition<info>true</info> if there is a
                  disposition stringdispositionDisposition stringifdparameters<info>true</info> if the
                  dparameters array existsdparametersAn array of objects where each object has an
                  <return>"attribute"</return> and a <return>"value"</return> property corresponding to the parameters on the
                  <return>Content-disposition</return> MIME header.ifparameters<info>true</info> if the parameters array
                  existsparametersAn array of objects where each object has an <return>"attribute"</return> and a
                  <return>"value"</return> property.partsAn array of objects identical in structure to the top-level
                  object, each of which corresponds to a MIME body part.
                  
                  Primary body type (value may vary with used library, use of constants is
                  recommended)ValueTypeConstant0textTYPETEXT1multipartTYPEMULTIPART2messageTYPEMESSAGE3applicationTYPEAPPLICATION4audioTYPEAUDIO5imageTYPEIMAGE6videoTYPEVIDEO7modelTYPEMODEL8otherTYPEOTHER
                  
                  Transfer encodings (value may vary with used library, use of constants is
                  recommended)ValueTypeConstant07bitENC7BIT18bitENC8BIT2BinaryENCBINARY3Base64ENCBASE644Quoted-PrintableENCQUOTEDPRINTABLE5otherENCOTHER

<comment>See Also:</comment>
   * <strong>imap_fetchbody()</strong>
   * <strong>imap_bodystruct()</strong>


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


id: imap_gc
type: function
doc:
<comment>Description:</comment>
  Clears IMAP cache
  
  Purges the cache of entries of a specific type.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>   An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$flags</strong>  Specifies the cache to purge. It may one or a combination of the
                           following constants:  <info>IMAP_GC_ELT</info> (message cache elements),  <info>IMAP_GC_ENV</info>
                           (envelope and bodies), <info>IMAP_GC_TEXTS</info> (texts).

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


id: imap_get_quota
type: function
doc:
<comment>Description:</comment>
  Retrieve the quota level settings, and usage statics per mailbox
  
  Retrieve the quota level settings, and usage statics per mailbox.
  
  For a non-admin user version of this function, please see the <strong>imap_get_quotaroot()</strong> function of
  PHP.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>        An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$quota_root</strong>  <strong>$quota_root</strong> should normally be in the form of <return>user.name</return> where name
                                is the mailbox you wish to retrieve information about.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array with integer values limit and usage for the given mailbox.  The
               value of limit represents the total amount of space allowed for this mailbox.  The
               usage value represents the mailboxes current level of capacity.  Will return <info>false</info> in
               the case of failure.
               
               As of PHP 4.3, the function more properly reflects the functionality as dictated by
               the RFC2087. The array return value has changed to support an unlimited number of
               returned  resources (i.e.  messages, or sub-folders) with each named resource
               receiving an individual array key.  Each key value then contains an another array
               with the usage and limit values within it.
               
               For backwards compatibility reasons, the original access methods are still available
               for use, although it is suggested to update.

<comment>See Also:</comment>
   * <strong>imap_open()</strong>
   * <strong>imap_set_quota()</strong>
   * <strong>imap_get_quotaroot()</strong>


id: imap_get_quotaroot
type: function
doc:
<comment>Description:</comment>
  Retrieve the quota settings per user
  
  Retrieve the quota settings per user. The limit value represents the total amount of space allowed
  for this user's total mailbox usage.  The usage value represents the user's current total mailbox
  capacity.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>     An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$mailbox</strong>  <strong>$mailbox</strong> should normally be in the form of which mailbox (i.e. INBOX).

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of integer values pertaining to the specified user mailbox.  All
               values contain a key based upon the resource name, and a corresponding array with the
               usage and limit values within.
               
               This function will return <info>false</info> in the case of call failure, and an array of
               information about the connection upon an un-parsable response from the server.

<comment>See Also:</comment>
   * <strong>imap_open()</strong>
   * <strong>imap_set_quota()</strong>
   * <strong>imap_get_quota()</strong>


id: imap_getacl
type: function
doc:
<comment>Description:</comment>
  Gets the ACL for a given mailbox
  
  Gets the ACL for a given mailbox.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>     An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$mailbox</strong>  The mailbox name, see <strong>imap_open()</strong> for more information
                             
                             Passing untrusted data to this parameter is insecure, unless
                             imap.enable_insecure_rsh is disabled.

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array of "folder" =&gt; "acl" pairs,  or <info>false</info> on failure.

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


id: imap_getmailboxes
type: function
doc:
<comment>Description:</comment>
  Read the list of mailboxes, returning detailed information on each one
  
  Gets information on the mailboxes.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>       An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$reference</strong>  <strong>$reference</strong> should normally be just the server specification as
                               described in <strong>imap_open()</strong>
                               
                               Passing untrusted data to this parameter is insecure, unless
                               imap.enable_insecure_rsh is disabled.
  <info>string</info>           <strong>$pattern</strong>    Specifies where in the mailbox hierarchy
                               to start searching.
                               
                               There are two special characters you can
                               pass as part of the <strong>$pattern</strong>:
                               '<return>*</return>' and '<return>%</return>'.
                               '<return>*</return>' means to return all mailboxes. If you pass
                               <strong>$pattern</strong> as '<return>*</return>', you will
                               get a list of the entire mailbox hierarchy.
                               '<return>%</return>'
                               means to return the current level only.
                               '<return>%</return>' as the <strong>$pattern</strong>
                               parameter will return only the top level
                               mailboxes; '<return>~/mail/%</return>' on <return>UW_IMAPD</return> will return every mailbox in the
                               ~/mail directory, but none in subfolders of that directory.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of objects containing mailbox information. Each object has the
               attributes <strong>$name</strong>, specifying the full name of the mailbox; <strong>$delimiter</strong>, which is the
               hierarchy delimiter for the part of the hierarchy this mailbox is in; and
               <strong>$attributes</strong>. <strong>$Attributes</strong> is a bitmask that can be tested against: <info>LATT_NOINFERIORS</info> -
               This mailbox not contains, and may not contain any "children" (there are no mailboxes
               below this one). Calling  <strong>imap_createmailbox()</strong> will not work on this mailbox.
               <info>LATT_NOSELECT</info> - This is only a container, not a mailbox - you cannot open it.
               <info>LATT_MARKED</info> - This mailbox is marked. This means that it may  contain new messages
               since the last time it was checked. Not provided by all IMAP servers. <info>LATT_UNMARKED</info> -
               This mailbox is not marked, does not contain new messages.  If either <info>MARKED</info> or
               <info>UNMARKED</info> is provided, you can assume the IMAP server  supports this feature for this
               mailbox. <info>LATT_REFERRAL</info> - This container has a referral to a remote mailbox.
               <info>LATT_HASCHILDREN</info> - This mailbox has selectable inferiors. <info>LATT_HASNOCHILDREN</info> - This
               mailbox has no selectable inferiors.  The function returns <info>false</info> on failure.
               
               <info>LATT_NOINFERIORS</info> - This mailbox not contains, and may not contain any "children"
               (there are no mailboxes below this one). Calling  <strong>imap_createmailbox()</strong> will not work
               on this mailbox.
               
               <info>LATT_NOSELECT</info> - This is only a container, not a mailbox - you cannot open it.
               
               <info>LATT_MARKED</info> - This mailbox is marked. This means that it may  contain new messages
               since the last time it was checked. Not provided by all IMAP servers.
               
               <info>LATT_UNMARKED</info> - This mailbox is not marked, does not contain new messages.  If either
               <info>MARKED</info> or <info>UNMARKED</info> is provided, you can assume the IMAP server  supports this feature
               for this mailbox.
               
               <info>LATT_REFERRAL</info> - This container has a referral to a remote mailbox.
               
               <info>LATT_HASCHILDREN</info> - This mailbox has selectable inferiors.
               
               <info>LATT_HASNOCHILDREN</info> - This mailbox has no selectable inferiors.

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


id: imap_getsubscribed
type: function
doc:
<comment>Description:</comment>
  List all the subscribed mailboxes
  
  Gets information about the subscribed mailboxes.
  
  Identical to <strong>imap_getmailboxes()</strong>, except that it only returns mailboxes that the user is
  subscribed to.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>       An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$reference</strong>  <strong>$reference</strong> should normally be just the server specification as
                               described in <strong>imap_open()</strong>
                               
                               Passing untrusted data to this parameter is insecure, unless
                               imap.enable_insecure_rsh is disabled.
  <info>string</info>           <strong>$pattern</strong>    Specifies where in the mailbox hierarchy
                               to start searching.
                               
                               There are two special characters you can
                               pass as part of the <strong>$pattern</strong>:
                               '<return>*</return>' and '<return>%</return>'.
                               '<return>*</return>' means to return all mailboxes. If you pass
                               <strong>$pattern</strong> as '<return>*</return>', you will
                               get a list of the entire mailbox hierarchy.
                               '<return>%</return>'
                               means to return the current level only.
                               '<return>%</return>' as the <strong>$pattern</strong>
                               parameter will return only the top level
                               mailboxes; '<return>~/mail/%</return>' on <return>UW_IMAPD</return> will return every mailbox in the
                               ~/mail directory, but none in subfolders of that directory.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of objects containing mailbox information. Each object has the
               attributes <strong>$name</strong>, specifying the full name of the mailbox; <strong>$delimiter</strong>, which is the
               hierarchy delimiter for the part of the hierarchy this mailbox is in; and
               <strong>$attributes</strong>. <strong>$Attributes</strong> is a bitmask that can be tested against: <info>LATT_NOINFERIORS</info> -
               This mailbox has no "children" (there are no mailboxes below this one). <info>LATT_NOSELECT</info>
               - This is only a container, not a mailbox - you cannot open it. <info>LATT_MARKED</info> - This
               mailbox is marked. Only used by UW-IMAPD. <info>LATT_UNMARKED</info> - This mailbox is not marked.
               Only used by UW-IMAPD. <info>LATT_REFERRAL</info> - This container has a referral to a remote
               mailbox. <info>LATT_HASCHILDREN</info> - This mailbox has selectable inferiors. <info>LATT_HASNOCHILDREN</info>
               - This mailbox has no selectable inferiors.  The function returns <info>false</info> on failure.
               
               <info>LATT_NOINFERIORS</info> - This mailbox has no "children" (there are no mailboxes below this
               one).
               
               <info>LATT_NOSELECT</info> - This is only a container, not a mailbox - you cannot open it.
               
               <info>LATT_MARKED</info> - This mailbox is marked. Only used by UW-IMAPD.
               
               <info>LATT_UNMARKED</info> - This mailbox is not marked. Only used by UW-IMAPD.
               
               <info>LATT_REFERRAL</info> - This container has a referral to a remote mailbox.
               
               <info>LATT_HASCHILDREN</info> - This mailbox has selectable inferiors.
               
               <info>LATT_HASNOCHILDREN</info> - This mailbox has no selectable inferiors.


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


id: imap_headerinfo
type: function
doc:
<comment>Description:</comment>
  Read the header of the message
  
  Gets information about the given message number by reading its headers.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>            An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$message_num</strong>     The message number
  <info>int</info>              <strong>$from_length</strong>     Number of characters for the <return>fetchfrom</return> property. Must be greater
                                    than or equal to zero.
  <info>int</info>              <strong>$subject_length</strong>  Number of characters for the <return>fetchsubject</return> property Must be
                                    greater than or equal to zero.
  <info></info>                 <strong>$defaulthost</strong>     

<comment>Return:</comment>
  <info>stdClass|false</info>  Returns <info>false</info> on error or, if successful, the information in an object with
                  following properties:  toaddress - full to: line, up to 1024 characters  to - an
                  array of objects from the To: line, with the following  properties: <return>personal</return>, <return>adl</return>,
                  <return>mailbox</return>, and <return>host</return>  fromaddress - full from: line, up to 1024 characters  from - an
                  array of objects from the From: line, with the following  properties: <return>personal</return>,
                  <return>adl</return>, <return>mailbox</return>, and <return>host</return>  ccaddress - full cc: line, up to 1024 characters  cc - an
                  array of objects from the Cc: line, with the following  properties: <return>personal</return>, <return>adl</return>,
                  <return>mailbox</return>, and <return>host</return>  bccaddress - full bcc: line, up to 1024 characters  bcc - an
                  array of objects from the Bcc: line, with the following  properties: <return>personal</return>,
                  <return>adl</return>, <return>mailbox</return>, and <return>host</return>  reply_toaddress - full Reply-To: line, up to 1024
                  characters  reply_to - an array of objects from the Reply-To: line, with the
                  following properties: <return>personal</return>, <return>adl</return>, <return>mailbox</return>, and <return>host</return>  senderaddress - full
                  sender: line, up to 1024 characters  sender - an array of objects from the Sender:
                  line, with the following  properties: <return>personal</return>, <return>adl</return>, <return>mailbox</return>, and <return>host</return>
                  return_pathaddress - full Return-Path: line, up to 1024 characters  return_path -
                  an array of objects from the Return-Path: line, with the following properties:
                  <return>personal</return>,  <return>adl</return>, <return>mailbox</return>, and  <return>host</return>  remail -   date - The message date as found in
                  its headers  Date - Same as date  subject - The message subject  Subject - Same as
                  subject   in_reply_to -   message_id -   newsgroups -   followup_to -   references
                  -   Recent - <return>R</return> if recent and seen, <return>N</return> if recent and not seen, ' ' if not recent.
                  Unseen - <return>U</return> if not seen AND not recent, ' ' if seen OR not seen and recent  Flagged
                  - <return>F</return> if flagged, ' ' if not flagged  Answered - <return>A</return> if answered, ' ' if unanswered
                  Deleted - <return>D</return> if deleted, ' ' if not deleted  Draft - <return>X</return> if draft, ' ' if not draft
                  Msgno - The message number  MailDate -   Size - The message size  udate - mail
                  message date in Unix time  fetchfrom - from line formatted to fit <strong>$from_length</strong>
                  characters  fetchsubject - subject line formatted to fit  <strong>$subject_length</strong>
                  characters
                  
                  toaddress - full to: line, up to 1024 characters
                  
                  to - an array of objects from the To: line, with the following  properties:
                  <return>personal</return>, <return>adl</return>, <return>mailbox</return>, and <return>host</return>
                  
                  fromaddress - full from: line, up to 1024 characters
                  
                  from - an array of objects from the From: line, with the following  properties:
                  <return>personal</return>, <return>adl</return>, <return>mailbox</return>, and <return>host</return>
                  
                  ccaddress - full cc: line, up to 1024 characters
                  
                  cc - an array of objects from the Cc: line, with the following  properties:
                  <return>personal</return>, <return>adl</return>, <return>mailbox</return>, and <return>host</return>
                  
                  bccaddress - full bcc: line, up to 1024 characters
                  
                  bcc - an array of objects from the Bcc: line, with the following  properties:
                  <return>personal</return>, <return>adl</return>, <return>mailbox</return>, and <return>host</return>
                  
                  reply_toaddress - full Reply-To: line, up to 1024 characters
                  
                  reply_to - an array of objects from the Reply-To: line, with the following
                  properties: <return>personal</return>, <return>adl</return>, <return>mailbox</return>, and <return>host</return>
                  
                  senderaddress - full sender: line, up to 1024 characters
                  
                  sender - an array of objects from the Sender: line, with the following
                  properties: <return>personal</return>, <return>adl</return>, <return>mailbox</return>, and <return>host</return>
                  
                  return_pathaddress - full Return-Path: line, up to 1024 characters
                  
                  return_path - an array of objects from the Return-Path: line, with the following
                  properties: <return>personal</return>,  <return>adl</return>, <return>mailbox</return>, and  <return>host</return>
                  
                  remail -
                  
                  date - The message date as found in its headers
                  
                  Date - Same as date
                  
                  subject - The message subject
                  
                  Subject - Same as subject
                  
                  in_reply_to -
                  
                  message_id -
                  
                  newsgroups -
                  
                  followup_to -
                  
                  references -
                  
                  Recent - <return>R</return> if recent and seen, <return>N</return> if recent and not seen, ' ' if not recent.
                  
                  Unseen - <return>U</return> if not seen AND not recent, ' ' if seen OR not seen and recent
                  
                  Flagged - <return>F</return> if flagged, ' ' if not flagged
                  
                  Answered - <return>A</return> if answered, ' ' if unanswered
                  
                  Deleted - <return>D</return> if deleted, ' ' if not deleted
                  
                  Draft - <return>X</return> if draft, ' ' if not draft
                  
                  Msgno - The message number
                  
                  MailDate -
                  
                  Size - The message size
                  
                  udate - mail message date in Unix time
                  
                  fetchfrom - from line formatted to fit <strong>$from_length</strong> characters
                  
                  fetchsubject - subject line formatted to fit  <strong>$subject_length</strong> characters

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


id: imap_headers
type: function
doc:
<comment>Description:</comment>
  Returns headers for all messages in a mailbox
  
  Returns headers for all messages in a mailbox.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>  An <class>IMAP\Connection</class> instance.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of string formatted with header info. One element per mail message.
               Returns <info>false</info> on failure.


id: imap_is_open
type: function
doc:
<comment>Description:</comment>
  Check if the IMAP stream is still valid
  
  Check if the IMAP stream is still valid.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>  An <class>IMAP\Connection</class> instance.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the stream is still valid, <info>false</info> otherwise.


id: imap_last_error
type: function
doc:
<comment>Description:</comment>
  Gets the last IMAP error that occurred during this page request
  
  Gets the full text of the last IMAP error message that occurred on the current page. The error
  stack is untouched; calling  <strong>imap_last_error()</strong> subsequently, with no intervening errors, will
  return the same error.

<comment>Return:</comment>
  <info>string|false</info>  Returns the full text of the last IMAP error message that occurred on the current
                page. Returns <info>false</info> if no error messages are available.

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


id: imap_list
type: function
doc:
<comment>Description:</comment>
  Read the list of mailboxes
  
  Read the list of mailboxes.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>       An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$reference</strong>  <strong>$reference</strong> should normally be just the server specification as
                               described in <strong>imap_open()</strong>.
                               
                               Passing untrusted data to this parameter is insecure, unless
                               imap.enable_insecure_rsh is disabled.
  <info>string</info>           <strong>$pattern</strong>    Specifies where in the mailbox hierarchy
                               to start searching.
                               
                               There are two special characters you can
                               pass as part of the <strong>$pattern</strong>:
                               '<return>*</return>' and '<return>%</return>'.
                               '<return>*</return>' means to return all mailboxes. If you pass
                               <strong>$pattern</strong> as '<return>*</return>', you will
                               get a list of the entire mailbox hierarchy.
                               '<return>%</return>'
                               means to return the current level only.
                               '<return>%</return>' as the <strong>$pattern</strong>
                               parameter will return only the top level
                               mailboxes; '<return>~/mail/%</return>' on <return>UW_IMAPD</return> will return every mailbox in the
                               ~/mail directory, but none in subfolders of that directory.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array containing the names of the mailboxes or <info>false</info> in case of failure.

<comment>See Also:</comment>
   * <strong>imap_getmailboxes()</strong>
   * <strong>imap_lsub()</strong>


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


id: imap_listscan
type: function
doc:
<comment>Description:</comment>
  Returns the list of mailboxes that matches the given text
  
  Returns an array containing the names of the mailboxes that have <strong>$content</strong> in the text of the
  mailbox.
  
  This function is similar to <strong>imap_listmailbox()</strong>, but it will additionally check for the presence of
  the string <strong>$content</strong> inside the mailbox data.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>       An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$reference</strong>  <strong>$reference</strong> should normally be just the server  specification as
                               described in <strong>imap_open()</strong>
                               
                               Passing untrusted data to this parameter is insecure, unless
                               imap.enable_insecure_rsh is disabled.
  <info>string</info>           <strong>$pattern</strong>    Specifies where in the mailbox hierarchy
                               to start searching.
                               
                               There are two special characters you can
                               pass as part of the <strong>$pattern</strong>:
                               '<return>*</return>' and '<return>%</return>'.
                               '<return>*</return>' means to return all mailboxes. If you pass
                               <strong>$pattern</strong> as '<return>*</return>', you will
                               get a list of the entire mailbox hierarchy.
                               '<return>%</return>'
                               means to return the current level only.
                               '<return>%</return>' as the <strong>$pattern</strong>
                               parameter will return only the top level
                               mailboxes; '<return>~/mail/%</return>' on <return>UW_IMAPD</return> will return every mailbox in the
                               ~/mail directory, but none in subfolders of that directory.
  <info>string</info>           <strong>$content</strong>    The searched string

<comment>Return:</comment>
  <info>array|false</info>  Returns an array containing the names of the mailboxes that have <strong>$content</strong> in the text
               of the mailbox,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>imap_listmailbox()</strong>
   * <strong>imap_search()</strong>


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


id: imap_lsub
type: function
doc:
<comment>Description:</comment>
  List all the subscribed mailboxes
  
  Gets an array of all the mailboxes that you have subscribed.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>       An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$reference</strong>  <strong>$reference</strong> should normally be just the server  specification as
                               described in <strong>imap_open()</strong>
                               
                               Passing untrusted data to this parameter is insecure, unless
                               imap.enable_insecure_rsh is disabled.
  <info>string</info>           <strong>$pattern</strong>    Specifies where in the mailbox hierarchy
                               to start searching.
                               
                               There are two special characters you can
                               pass as part of the <strong>$pattern</strong>:
                               '<return>*</return>' and '<return>%</return>'.
                               '<return>*</return>' means to return all mailboxes. If you pass
                               <strong>$pattern</strong> as '<return>*</return>', you will
                               get a list of the entire mailbox hierarchy.
                               '<return>%</return>'
                               means to return the current level only.
                               '<return>%</return>' as the <strong>$pattern</strong>
                               parameter will return only the top level
                               mailboxes; '<return>~/mail/%</return>' on <return>UW_IMAPD</return> will return every mailbox in the
                               ~/mail directory, but none in subfolders of that directory.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of all the subscribed mailboxes,  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>imap_list()</strong>
   * <strong>imap_getmailboxes()</strong>


id: imap_mail
type: function
doc:
<comment>Description:</comment>
  Send an email message
  
  This function allows sending of emails with correct handling of Cc and Bcc receivers.
  
  The parameters <strong>$to</strong>, <strong>$cc</strong> and <strong>$bcc</strong> are all strings and are all parsed as RFC822 address lists.

<comment>Param:</comment>
  <info>string</info>       <strong>$to</strong>                  The receiver
  <info>string</info>       <strong>$subject</strong>             The mail subject
  <info>string</info>       <strong>$message</strong>             The mail body, see <strong>imap_mail_compose()</strong>
  <info>string|null</info>  <strong>$additional_headers</strong>  As string with additional headers to be set on the mail
  <info>string|null</info>  <strong>$cc</strong>                  
  <info>string|null</info>  <strong>$bcc</strong>                 The receivers specified in <strong>$bcc</strong> will get the mail, but are
                                    excluded from the headers.
  <info>string|null</info>  <strong>$return_path</strong>         Use this parameter to specify return path upon mail delivery
                                    failure. This is useful when using PHP as a mail client for
                                    multiple users.

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

<comment>See Also:</comment>
   * <strong>mail()</strong>
   * <strong>imap_mail_compose()</strong>


id: imap_mail_compose
type: function
doc:
<comment>Description:</comment>
  Create a MIME message based on given envelope and body sections
  
  Create a MIME message based on the given <strong>$envelope</strong> and <strong>$bodies</strong> sections.

<comment>Param:</comment>
  <info>array</info>  <strong>$envelope</strong>  An associative array of header fields. Valid keys are: <return>"remail"</return>, <return>"return_path"</return>,
                    <return>"date"</return>, <return>"from"</return>, <return>"reply_to"</return>, <return>"in_reply_to"</return>, <return>"subject"</return>, <return>"to"</return>, <return>"cc"</return>, <return>"bcc"</return> and
                    <return>"message_id"</return>, which set the respective message headers to the given <info>string</info>. To
                    set additional headers, the key <return>"custom_headers"</return> is supported, which expects an
                    array of those headers, e.g. ["User-Agent: My Mail Client"].
  <info>array</info>  <strong>$bodies</strong>    An indexed array of bodies. The first body is the main body of the message; only
                    if it has a type of <info>TYPEMULTIPART</info>, further bodies are processed; these bodies
                    constitute the bodies of the parts.
                    
                    Body Array StructureKeyTypeDescription<return>type</return><info>int</info> The MIME type. One of <info>TYPETEXT</info>
                    (default), <info>TYPEMULTIPART</info>, <info>TYPEMESSAGE</info>, <info>TYPEAPPLICATION</info>, <info>TYPEAUDIO</info>, <info>TYPEIMAGE</info>,
                    <info>TYPEMODEL</info> or <info>TYPEOTHER</info>. <return>encoding</return><info>int</info> The <return>Content-Transfer-Encoding</return>. One of
                    <info>ENC7BIT</info> (default), <info>ENC8BIT</info>, <info>ENCBINARY</info>, <info>ENCBASE64</info>, <info>ENCQUOTEDPRINTABLE</info> or
                    <info>ENCOTHER</info>. <return>charset</return><info>string</info>The charset parameter of the MIME
                    type.<return>type.parameters</return><info>array</info>An associative <info>array</info> of <return>Content-Type</return> parameter names
                    and their values.<return>subtype</return><info>string</info>The MIME subtype, e.g. <return>'jpeg'</return> for
                    <info>TYPEIMAGE</info>.<return>id</return><info>string</info>The <return>Content-ID</return>.<return>description</return><info>string</info>The
                    <return>Content-Description</return>.<return>disposition.type</return><info>string</info>The <return>Content-Disposition</return>, e.g.
                    <return>'attachment'</return>.<return>disposition</return><info>array</info>An associative <info>array</info> of <return>Content-Disposition</return>
                    parameter names and values.<return>contents.data</return><info>string</info>The payload.<return>lines</return><info>int</info>The size of
                    the payload in lines.<return>bytes</return><info>int</info>The size of the payload in bytes.<return>md5</return><info>string</info>The MD5
                    checksum of the payload.

<comment>Return:</comment>
  <info>string|false</info>  Returns the MIME message as <info>string</info>,  or <info>false</info> on failure.


id: imap_mail_copy
type: function
doc:
<comment>Description:</comment>
  Copy specified messages to a mailbox
  
  Copies mail messages specified by <strong>$message_nums</strong> to specified mailbox.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>          An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$message_nums</strong>  <strong>$message_nums</strong> is a range not just message numbers (as described in
                                  RFC2060).
  <info>string</info>           <strong>$mailbox</strong>       The mailbox name, see <strong>imap_open()</strong> for more information
                                  
                                  Passing untrusted data to this parameter is insecure, unless
                                  imap.enable_insecure_rsh is disabled.
  <info>int</info>              <strong>$flags</strong>         <strong>$flags</strong> is a bitmask of one or more of <info>CP_UID</info> - the sequence
                                  numbers contain UIDS <info>CP_MOVE</info> - Delete the messages from the
                                  current mailbox after copying. If this flag is set, the function
                                  behaves identically to <strong>imap_mail_move()</strong>.
                                  
                                  <info>CP_UID</info> - the sequence numbers contain UIDS
                                  
                                  <info>CP_MOVE</info> - Delete the messages from the current mailbox after
                                  copying. If this flag is set, the function behaves identically to
                                  <strong>imap_mail_move()</strong>.

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

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


id: imap_mail_move
type: function
doc:
<comment>Description:</comment>
  Move specified messages to a mailbox
  
  Moves mail messages specified by <strong>$message_nums</strong> to the specified <strong>$mailbox</strong>. Note that the mail
  messages are actually copied to the <strong>$mailbox</strong>, and the original messages are flagged for deletion.
  That implies that the messages in <strong>$mailbox</strong> are assigned new UIDs.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>          An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$message_nums</strong>  <strong>$message_nums</strong> is a range not just message numbers (as described in
                                  RFC2060).
  <info>string</info>           <strong>$mailbox</strong>       The mailbox name, see <strong>imap_open()</strong> for more information
                                  
                                  Passing untrusted data to this parameter is insecure, unless
                                  imap.enable_insecure_rsh is disabled.
  <info>int</info>              <strong>$flags</strong>         <strong>$flags</strong> is a bitmask and may contain the single option: <info>CP_UID</info> -
                                  the sequence numbers contain UIDS
                                  
                                  <info>CP_UID</info> - the sequence numbers contain UIDS

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

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


id: imap_mailboxmsginfo
type: function
doc:
<comment>Description:</comment>
  Get information about the current mailbox
  
  Checks the current mailbox status on the server. It is similar to <strong>imap_status()</strong>, but will
  additionally sum up the size of all messages in the mailbox, which will take some additional time
  to  execute.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>  An <class>IMAP\Connection</class> instance.

<comment>Return:</comment>
  <info>stdClass</info>  Returns the information in an object with following properties: Mailbox
            propertiesDatedate of last change (current datetime)DriverdriverMailboxname of the
            mailboxNmsgsnumber of messagesRecentnumber of recent messagesUnreadnumber of unread
            messagesDeletednumber of deleted messagesSizemailbox size


id: imap_mime_header_decode
type: function
doc:
<comment>Description:</comment>
  Decode MIME header elements
  
  Decodes MIME message header extensions that are non ASCII text (see RFC2047).

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The MIME text

<comment>Return:</comment>
  <info>array|false</info>  The decoded elements are returned in an array of objects, where each object has two
               properties, <return>charset</return> and  <return>text</return>.
               
               If the element hasn't been encoded, and in other words is in plain US-ASCII, the
               <return>charset</return> property of that element is set to <return>default</return>.
               
               The function returns <info>false</info> on failure.

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


id: imap_msgno
type: function
doc:
<comment>Description:</comment>
  Gets the message sequence number for the given UID
  
  Returns the message sequence number for the given  <strong>$message_uid</strong>.
  
  This function is the inverse of <strong>imap_uid()</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>         An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$message_uid</strong>  The message UID

<comment>Return:</comment>
  <info>int</info>  Returns the message sequence number for the given  <strong>$message_uid</strong>.

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


id: imap_mutf7_to_utf8
type: function
doc:
<comment>Description:</comment>
  Decode a modified UTF-7 string to UTF-8
  
  Decode a modified UTF-7 (as specified in RFC 2060, section 5.1.3) string to UTF-8.
  
  This function is only available, if libcclient exports utf8_to_mutf7().

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  A string encoded in modified UTF-7.

<comment>Return:</comment>
  <info>string|false</info>  Returns <strong>$string</strong> converted to UTF-8, or <info>false</info> on failure.

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


id: imap_num_msg
type: function
doc:
<comment>Description:</comment>
  Gets the number of messages in the current mailbox
  
  Gets the number of messages in the current mailbox.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>  An <class>IMAP\Connection</class> instance.

<comment>Return:</comment>
  <info>int|false</info>  Return the number of messages in the current mailbox, as an integer, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>imap_num_recent()</strong>
   * <strong>imap_status()</strong>


id: imap_num_recent
type: function
doc:
<comment>Description:</comment>
  Gets the number of recent messages in current mailbox
  
  Gets the number of recent messages in the current mailbox.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>  An <class>IMAP\Connection</class> instance.

<comment>Return:</comment>
  <info>int</info>  Returns the number of recent messages in the current mailbox, as an integer.

<comment>See Also:</comment>
   * <strong>imap_num_msg()</strong>
   * <strong>imap_status()</strong>


id: imap_open
type: function
doc:
<comment>Description:</comment>
  Open an IMAP stream to a mailbox
  
  Opens an IMAP stream to a <strong>$mailbox</strong>.
  
  This function can also be used to open streams to POP3 and NNTP servers, but some functions and
  features are only available on IMAP servers.

<comment>Param:</comment>
  <info>string</info>  <strong>$mailbox</strong>   A mailbox name consists of a server and a mailbox path on this server. The
                     special name <return>INBOX</return> stands for the current users personal mailbox. Mailbox names
                     that contain international characters besides those in the printable ASCII
                     space have to be encoded with <strong>imap_utf7_encode()</strong>.
                     
                     Passing untrusted data to this parameter is insecure, unless
                     imap.enable_insecure_rsh is disabled.
                     
                     The server part, which is enclosed in '{' and '}', consists of the servers name
                     or ip address, an optional port (prefixed by ':'), and an optional protocol
                     specification (prefixed by '/').
                     
                     The server part is mandatory in all mailbox parameters.
                     
                     All names which start with <return>{</return> are remote names, and are in the form <return>"{"
                     remote_system_name [":" port] [flags] "}" [mailbox_name]</return> where:
                     <return>remote_system_name</return> - Internet domain name or bracketed IP address of server.
                     <return>port</return> - optional TCP port number, default is the default port for that service
                     <return>flags</return> - optional flags, see following table. <return>mailbox_name</return> - remote mailbox
                     name, default is INBOX
                     
                     <return>remote_system_name</return> - Internet domain name or bracketed IP address of server.
                     
                     <return>port</return> - optional TCP port number, default is the default port for that service
                     
                     <return>flags</return> - optional flags, see following table.
                     
                     <return>mailbox_name</return> - remote mailbox name, default is INBOX
                     
                     Optional flags for namesFlagDescription<return>/service=</return>servicemailbox access service,
                     default is "imap"<return>/user=</return>userremote user name for login on the
                     server<return>/authuser=</return>userremote authentication user; if specified this is the user
                     name whose password is used (e.g. administrator)<return>/anonymous</return>remote access as
                     anonymous user<return>/debug</return>record protocol telemetry in application's debug
                     log<return>/secure</return>do not transmit a plaintext password over the network<return>/imap</return>, <return>/imap2</return>,
                     <return>/imap2bis</return>, <return>/imap4</return>, <return>/imap4rev1</return>equivalent to <return>/service=imap</return><return>/pop3</return>equivalent to
                     <return>/service=pop3</return><return>/nntp</return>equivalent to <return>/service=nntp</return><return>/norsh</return>do not use rsh or ssh to
                     establish a preauthenticated IMAP session<return>/ssl</return>use the <return>Secure Socket Layer</return> to
                     encrypt the session<return>/validate-cert</return>validate certificates from TLS/SSL server
                     (this is the default behavior)<return>/novalidate-cert</return>do not validate certificates from
                     TLS/SSL server, needed if server uses self-signed certificates<return>/tls</return>force use of
                     <return>start-TLS</return> to encrypt the session, and reject connection to servers that do not
                     support it<return>/notls</return>do not do <return>start-TLS</return> to encrypt the session, even with servers
                     that support it<return>/readonly</return>request read-only mailbox open (IMAP only; ignored on
                     NNTP, and an error with SMTP and POP3)
  <info>string</info>  <strong>$user</strong>      The user name
  <info>string</info>  <strong>$password</strong>  The password associated with the <strong>$user</strong>
  <info>int</info>     <strong>$flags</strong>     The <strong>$flags</strong> are a bit mask with one or more of the following: <info>OP_READONLY</info> - Open
                     mailbox read-only <info>OP_ANONYMOUS</info> - Don't use or update a .newsrc for news (NNTP
                     only) <info>OP_HALFOPEN</info> - For IMAP and NNTP names, open a connection but don't open a
                     mailbox. <info>CL_EXPUNGE</info> - Expunge mailbox automatically upon mailbox close (see
                     also <strong>imap_delete()</strong> and <strong>imap_expunge()</strong>) <info>OP_DEBUG</info> - Debug protocol negotiations
                     <info>OP_SHORTCACHE</info> - Short (<return>elt</return>-only) caching <info>OP_SILENT</info> - Don't pass up events
                     (internal use) <info>OP_PROTOTYPE</info> - Return driver prototype <info>OP_SECURE</info> - Don't do
                     non-secure authentication
                     
                     <info>OP_READONLY</info> - Open mailbox read-only
                     
                     <info>OP_ANONYMOUS</info> - Don't use or update a .newsrc for news (NNTP only)
                     
                     <info>OP_HALFOPEN</info> - For IMAP and NNTP names, open a connection but don't open a
                     mailbox.
                     
                     <info>CL_EXPUNGE</info> - Expunge mailbox automatically upon mailbox close (see also
                     <strong>imap_delete()</strong> and <strong>imap_expunge()</strong>)
                     
                     <info>OP_DEBUG</info> - Debug protocol negotiations
                     
                     <info>OP_SHORTCACHE</info> - Short (<return>elt</return>-only) caching
                     
                     <info>OP_SILENT</info> - Don't pass up events (internal use)
                     
                     <info>OP_PROTOTYPE</info> - Return driver prototype
                     
                     <info>OP_SECURE</info> - Don't do non-secure authentication
  <info>int</info>     <strong>$retries</strong>   Number of maximum connect attempts
  <info>array</info>   <strong>$options</strong>   Connection parameters, the following (string) keys maybe used  to set one or
                     more connection parameters: <return>DISABLE_AUTHENTICATOR</return> - Disable authentication
                     properties
                     
                     <return>DISABLE_AUTHENTICATOR</return> - Disable authentication properties

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

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


id: imap_ping
type: function
doc:
<comment>Description:</comment>
  Check if the IMAP stream is still active
  
  <strong>imap_ping()</strong> pings the stream to see if it's still active. It may discover new mail; this is the
  preferred method for a periodic "new mail check" as well as a "keep alive" for servers which have
  inactivity timeout.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>  An <class>IMAP\Connection</class> instance.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the stream is still alive, <info>false</info> otherwise.


id: imap_qprint
type: function
doc:
<comment>Description:</comment>
  Convert a quoted-printable string to an 8 bit string
  
  Convert a quoted-printable string to an 8 bit string according to RFC2045, section 6.7.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  A quoted-printable string

<comment>Return:</comment>
  <info>string|false</info>  Returns an 8 bits string,  or <info>false</info> on failure.

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


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


id: imap_renamemailbox
type: function
doc:
<comment>Description:</comment>
  Rename an old mailbox to new mailbox
  
  This function renames on old mailbox to new mailbox (see <strong>imap_open()</strong> for the format of <strong>$mbox</strong>
  names).

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>  An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$from</strong>  The old mailbox name, see <strong>imap_open()</strong> for more information
                          
                          Passing untrusted data to this parameter is insecure, unless
                          imap.enable_insecure_rsh is disabled.
  <info>string</info>           <strong>$to</strong>    The new mailbox name, see <strong>imap_open()</strong> for more information
                          
                          Passing untrusted data to this parameter is insecure, unless
                          imap.enable_insecure_rsh is disabled.

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

<comment>See Also:</comment>
   * <strong>imap_createmailbox()</strong>
   * <strong>imap_deletemailbox()</strong>


id: imap_reopen
type: function
doc:
<comment>Description:</comment>
  Reopen IMAP stream to new mailbox
  
  Reopens the specified stream to a new <strong>$mailbox</strong> on an IMAP or NNTP server.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>     An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$mailbox</strong>  The mailbox name, see <strong>imap_open()</strong> for more information
                             
                             Passing untrusted data to this parameter is insecure, unless
                             imap.enable_insecure_rsh is disabled.
  <info>int</info>              <strong>$flags</strong>    The <strong>$flags</strong> are a bit mask with one or more of the following:
                             <info>OP_READONLY</info> - Open mailbox read-only <info>OP_ANONYMOUS</info> - Don't use or update
                             a .newsrc for news (NNTP only) <info>OP_HALFOPEN</info> - For IMAP and NNTP names,
                             open a connection but don't open a mailbox. <info>OP_EXPUNGE</info> - Silently
                             expunge recycle stream <info>CL_EXPUNGE</info> - Expunge mailbox automatically upon
                             mailbox close (see also <strong>imap_delete()</strong> and <strong>imap_expunge()</strong>)
                             
                             <info>OP_READONLY</info> - Open mailbox read-only
                             
                             <info>OP_ANONYMOUS</info> - Don't use or update a .newsrc for news (NNTP only)
                             
                             <info>OP_HALFOPEN</info> - For IMAP and NNTP names, open a connection but don't open
                             a mailbox.
                             
                             <info>OP_EXPUNGE</info> - Silently expunge recycle stream
                             
                             <info>CL_EXPUNGE</info> - Expunge mailbox automatically upon mailbox close (see also
                             <strong>imap_delete()</strong> and <strong>imap_expunge()</strong>)
  <info>int</info>              <strong>$retries</strong>  Number of maximum connect attempts

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the stream is reopened, <info>false</info> otherwise.


id: imap_rfc822_parse_adrlist
type: function
doc:
<comment>Description:</comment>
  Parses an address string
  
  Parses the address string as defined in RFC2822 and for each address.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>            A string containing addresses
  <info>string</info>  <strong>$default_hostname</strong>  The default host name

<comment>Return:</comment>
  <info>array</info>  Returns an array of objects. The objects properties are:
         
          mailbox  - the mailbox name (username)  host - the host name  personal - the personal name
         adl - at domain source route
         
         mailbox  - the mailbox name (username)
         
         host - the host name
         
         personal - the personal name
         
         adl - at domain source route

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


id: imap_rfc822_parse_headers
type: function
doc:
<comment>Description:</comment>
  Parse mail headers from a string
  
  Gets an object of various header elements, similar to  <strong>imap_header()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$headers</strong>           The parsed headers data
  <info>string</info>  <strong>$default_hostname</strong>  The default host name

<comment>Return:</comment>
  <info>stdClass</info>  Returns an object similar to the one returned by <strong>imap_header()</strong>, except for the flags and
            other  properties that come from the IMAP server.

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


id: imap_rfc822_write_address
type: function
doc:
<comment>Description:</comment>
  Returns a properly formatted email address given the mailbox, host, and personal info
  
  Returns a properly formatted email address as defined in RFC2822 given the needed information.

<comment>Param:</comment>
  <info>string</info>  <strong>$mailbox</strong>   The mailbox name, see <strong>imap_open()</strong> for more information
                     
                     Passing untrusted data to this parameter is insecure, unless
                     imap.enable_insecure_rsh is disabled.
  <info>string</info>  <strong>$hostname</strong>  The email host part
  <info>string</info>  <strong>$personal</strong>  The name of the account owner

<comment>Return:</comment>
  <info>string|false</info>  Returns a string properly formatted email address as defined in RFC2822,  or <info>false</info>
                on failure.


id: imap_savebody
type: function
doc:
<comment>Description:</comment>
  Save a specific body section to a file
  
  Saves a part or the whole body of the specified message.

<comment>Param:</comment>
  <info>IMAP\Connection</info>      <strong>$imap</strong>         An <class>IMAP\Connection</class> instance.
  <info>resource|string|int</info>  <strong>$file</strong>         The path to the saved file as a string, or a valid file
                                     descriptor returned by <strong>fopen()</strong>.
  <info>int</info>                  <strong>$message_num</strong>  The message number
  <info>string</info>               <strong>$section</strong>      The part number. It is a string of integers delimited by period
                                     which index into a body part list as per the IMAP4
                                     specification
  <info>int</info>                  <strong>$flags</strong>        A bitmask with one or more of the following: <info>FT_UID</info> - The
                                     <strong>$message_num</strong> is a UID <info>FT_PEEK</info> - Do not set the \Seen flag if
                                     not already set <info>FT_INTERNAL</info> - The return string is in internal
                                     format, will not canonicalize to CRLF.
                                     
                                     <info>FT_UID</info> - The <strong>$message_num</strong> is a UID
                                     
                                     <info>FT_PEEK</info> - Do not set the \Seen flag if not already set
                                     
                                     <info>FT_INTERNAL</info> - The return string is in internal format, will not
                                     canonicalize to CRLF.

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

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


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


id: imap_search
type: function
doc:
<comment>Description:</comment>
  This function returns an array of messages matching the given search criteria
  
  This function performs a search on the mailbox currently opened in the given IMAP stream.
  
  For example, to match all unanswered messages sent by Mom, you'd use: "UNANSWERED FROM mom".
  Searches appear to be case insensitive. This list of criteria is from a reading of the UW c-client
  source code and may be incomplete or inaccurate (see also RFC1176,  section "tag SEARCH
  search_criteria").

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>      An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$criteria</strong>  A string, delimited by spaces, in which the following keywords are
                              allowed. Any multi-word arguments (e.g. <return>FROM "joey smith"</return>) must be
                              quoted. Results will match all <strong>$criteria</strong> entries.  ALL - return all
                              messages matching the rest of the criteria  ANSWERED - match messages
                              with the \\ANSWERED flag set  BCC "string" - match messages with
                              "string" in the Bcc: field  BEFORE "date" - match messages with Date:
                              before "date"  BODY "string" - match messages with "string" in the
                              body of the message  CC "string" - match messages with "string" in the
                              Cc: field  DELETED - match deleted messages  FLAGGED - match messages
                              with the \\FLAGGED (sometimes referred to as Important or Urgent) flag
                              set  FROM "string" - match messages with "string" in the From: field
                              KEYWORD "string" - match messages with "string" as a keyword  NEW -
                              match new messages  OLD - match old messages  ON "date" - match
                              messages with Date: matching "date"  RECENT - match messages with the
                              \\RECENT flag set  SEEN - match messages that have been read (the
                              \\SEEN flag is set)  SINCE "date" - match messages with Date: after
                              "date"  SUBJECT "string" - match messages with "string" in the
                              Subject:  TEXT "string" - match messages with text "string"  TO
                              "string" - match messages with "string" in the To:  UNANSWERED - match
                              messages that have not been answered  UNDELETED - match messages that
                              are not deleted  UNFLAGGED - match messages that are not flagged
                              UNKEYWORD "string" - match messages that do not have the keyword
                              "string"  UNSEEN - match messages which have not been read yet
                              
                              ALL - return all messages matching the rest of the criteria
                              
                              ANSWERED - match messages with the \\ANSWERED flag set
                              
                              BCC "string" - match messages with "string" in the Bcc: field
                              
                              BEFORE "date" - match messages with Date: before "date"
                              
                              BODY "string" - match messages with "string" in the body of the
                              message
                              
                              CC "string" - match messages with "string" in the Cc: field
                              
                              DELETED - match deleted messages
                              
                              FLAGGED - match messages with the \\FLAGGED (sometimes referred to as
                              Important or Urgent) flag set
                              
                              FROM "string" - match messages with "string" in the From: field
                              
                              KEYWORD "string" - match messages with "string" as a keyword
                              
                              NEW - match new messages
                              
                              OLD - match old messages
                              
                              ON "date" - match messages with Date: matching "date"
                              
                              RECENT - match messages with the \\RECENT flag set
                              
                              SEEN - match messages that have been read (the \\SEEN flag is set)
                              
                              SINCE "date" - match messages with Date: after "date"
                              
                              SUBJECT "string" - match messages with "string" in the Subject:
                              
                              TEXT "string" - match messages with text "string"
                              
                              TO "string" - match messages with "string" in the To:
                              
                              UNANSWERED - match messages that have not been answered
                              
                              UNDELETED - match messages that are not deleted
                              
                              UNFLAGGED - match messages that are not flagged
                              
                              UNKEYWORD "string" - match messages that do not have the keyword
                              "string"
                              
                              UNSEEN - match messages which have not been read yet
  <info>int</info>              <strong>$flags</strong>     Valid values for <strong>$flags</strong> are  <info>SE_UID</info>, which causes the returned array
                              to contain UIDs instead of messages sequence numbers.
  <info>string</info>           <strong>$charset</strong>   MIME character set to use when searching strings.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of message numbers or UIDs.
               
               Return <info>false</info> if it does not understand the search <strong>$criteria</strong> or no messages have been
               found.

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


id: imap_set_quota
type: function
doc:
<comment>Description:</comment>
  Sets a quota for a given mailbox
  
  Sets an upper limit quota on a per mailbox basis.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>          An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$quota_root</strong>    The mailbox to have a quota set. This should follow the IMAP
                                  standard format for a mailbox: <return>user.name</return>.
  <info>int</info>              <strong>$mailbox_size</strong>  The maximum size (in KB) for the <strong>$quota_root</strong>

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

<comment>See Also:</comment>
   * <strong>imap_open()</strong>
   * <strong>imap_get_quota()</strong>


id: imap_setacl
type: function
doc:
<comment>Description:</comment>
  Sets the ACL for a given mailbox
  
  Sets the ACL for a giving mailbox.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>     An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$mailbox</strong>  The mailbox name, see <strong>imap_open()</strong> for more information
                             
                             Passing untrusted data to this parameter is insecure, unless
                             imap.enable_insecure_rsh is disabled.
  <info>string</info>           <strong>$user_id</strong>  The user to give the rights to.
  <info>string</info>           <strong>$rights</strong>   The rights to give to the user. Passing an empty string will delete
                             acl.

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

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


id: imap_setflag_full
type: function
doc:
<comment>Description:</comment>
  Sets flags on messages
  
  Causes a store to add the specified <strong>$flag</strong> to the flags set for the messages in the specified
  <strong>$sequence</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>      An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$sequence</strong>  A sequence of message numbers. You can enumerate desired messages with
                              the <return>X,Y</return> syntax, or retrieve all messages  within an interval with the
                              <return>X:Y</return> syntax
  <info>string</info>           <strong>$flag</strong>      The flags which you can set are <return>\Seen</return>,  <return>\Answered</return>, <return>\Flagged</return>, <return>\Deleted</return>,
                              and <return>\Draft</return> as defined by RFC2060.
  <info>int</info>              <strong>$options</strong>   A bit mask that may contain the single option: <info>ST_UID</info> - The sequence
                              argument contains UIDs instead of sequence numbers
                              
                              <info>ST_UID</info> - The sequence argument contains UIDs instead of sequence
                              numbers

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

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


id: imap_sort
type: function
doc:
<comment>Description:</comment>
  Gets and sort messages
  
  Gets and sorts message numbers by the given parameters.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>             An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$criteria</strong>         Criteria can be one (and only one) of the following: <info>SORTDATE</info> -
                                     message Date <info>SORTARRIVAL</info> - arrival date <info>SORTFROM</info> - mailbox in
                                     first From address <info>SORTSUBJECT</info> - message subject <info>SORTTO</info> -
                                     mailbox in first To address <info>SORTCC</info> - mailbox in first cc
                                     address <info>SORTSIZE</info> - size of message in octets
                                     
                                     <info>SORTDATE</info> - message Date
                                     
                                     <info>SORTARRIVAL</info> - arrival date
                                     
                                     <info>SORTFROM</info> - mailbox in first From address
                                     
                                     <info>SORTSUBJECT</info> - message subject
                                     
                                     <info>SORTTO</info> - mailbox in first To address
                                     
                                     <info>SORTCC</info> - mailbox in first cc address
                                     
                                     <info>SORTSIZE</info> - size of message in octets
  <info>bool</info>             <strong>$reverse</strong>          Whether to sort in reverse order.
  <info>int</info>              <strong>$flags</strong>            The <strong>$flags</strong> are a bitmask of one or more of the following:
                                     <info>SE_UID</info> - Return UIDs instead of sequence numbers <info>SE_NOPREFETCH</info>
                                     - Don't prefetch searched messages
                                     
                                     <info>SE_UID</info> - Return UIDs instead of sequence numbers
                                     
                                     <info>SE_NOPREFETCH</info> - Don't prefetch searched messages
  <info>string|null</info>      <strong>$search_criteria</strong>  IMAP2-format search criteria string. For details see
                                     <strong>imap_search()</strong>.
  <info>string|null</info>      <strong>$charset</strong>          MIME character set to use when sorting strings.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of message numbers sorted by the given parameters,  or <info>false</info> on
               failure.


id: imap_status
type: function
doc:
<comment>Description:</comment>
  Returns status information on a mailbox
  
  Gets status information about the given <strong>$mailbox</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>     An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$mailbox</strong>  The mailbox name, see <strong>imap_open()</strong> for more information
                             
                             Passing untrusted data to this parameter is insecure, unless
                             imap.enable_insecure_rsh is disabled.
  <info>int</info>              <strong>$flags</strong>    Valid flags are: <info>SA_MESSAGES</info> - set $status-&gt;messages to the number
                             of messages in the mailbox <info>SA_RECENT</info> - set $status-&gt;recent to the
                             number of recent messages in the mailbox <info>SA_UNSEEN</info> - set
                             $status-&gt;unseen to the number of unseen (new) messages in the
                             mailbox <info>SA_UIDNEXT</info> - set $status-&gt;uidnext to the next uid to be used
                             in the mailbox <info>SA_UIDVALIDITY</info> - set $status-&gt;uidvalidity to a
                             constant that changes when uids for the mailbox may no longer be valid
                             <info>SA_ALL</info> - set all of the above
                             
                             <info>SA_MESSAGES</info> - set $status-&gt;messages to the number of messages in the
                             mailbox
                             
                             <info>SA_RECENT</info> - set $status-&gt;recent to the number of recent messages in
                             the mailbox
                             
                             <info>SA_UNSEEN</info> - set $status-&gt;unseen to the number of unseen (new)
                             messages in the mailbox
                             
                             <info>SA_UIDNEXT</info> - set $status-&gt;uidnext to the next uid to be used in the
                             mailbox
                             
                             <info>SA_UIDVALIDITY</info> - set $status-&gt;uidvalidity to a constant that changes
                             when uids for the mailbox may no longer be valid
                             
                             <info>SA_ALL</info> - set all of the above

<comment>Return:</comment>
  <info>stdClass|false</info>  This function returns an object containing status information,  or <info>false</info> on
                  failure. The object has the following properties: <return>messages</return>, <return>recent</return>, <return>unseen</return>,
                  <return>uidnext</return>, and <return>uidvalidity</return>.
                  
                  <return>flags</return> is also set, which contains a bitmask which can be checked against any of
                  the above constants.


id: imap_subscribe
type: function
doc:
<comment>Description:</comment>
  Subscribe to a mailbox
  
  Subscribe to a new mailbox.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>     An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$mailbox</strong>  The mailbox name, see <strong>imap_open()</strong> for more information
                             
                             Passing untrusted data to this parameter is insecure, unless
                             imap.enable_insecure_rsh is disabled.

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

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


id: imap_thread
type: function
doc:
<comment>Description:</comment>
  Returns a tree of threaded message
  
  Gets a tree of a threaded message.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>   An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$flags</strong>  

<comment>Return:</comment>
  <info>array|false</info>  <strong>imap_thread()</strong> returns an associative array containing a tree of messages threaded by
               <return>REFERENCES</return>, or <info>false</info> on error.
               
               Every message in the current mailbox will be represented by three entries in the
               resulting array: $thread["XX.num"] - current message number
               $thread["XX.next"]$thread["XX.branch"]
               
               $thread["XX.num"] - current message number
               
               $thread["XX.next"]
               
               $thread["XX.branch"]


id: imap_timeout
type: function
doc:
<comment>Description:</comment>
  Set or fetch imap timeout
  
  Sets or fetches the imap timeout.

<comment>Param:</comment>
  <info>int</info>  <strong>$timeout_type</strong>  One of the following: <info>IMAP_OPENTIMEOUT</info>, <info>IMAP_READTIMEOUT</info>, <info>IMAP_WRITETIMEOUT</info>,
                      or <info>IMAP_CLOSETIMEOUT</info>.
  <info>int</info>  <strong>$timeout</strong>       The timeout, in seconds.

<comment>Return:</comment>
  <info>int|bool</info>  If the <strong>$timeout</strong> parameter is set, this function returns <info>true</info> on success and <info>false</info> on
            failure.
            
            If <strong>$timeout</strong>  is not provided or evaluates to -1, the current timeout value of
            <strong>$timeout_type</strong> is returned as an integer.


id: imap_uid
type: function
doc:
<comment>Description:</comment>
  This function returns the UID for the given message sequence number
  
  This function returns the UID for the given message sequence number. An UID is a unique identifier
  that will not change over time while a message sequence number may change whenever the content of
  the mailbox changes.
  
  This function is the inverse of <strong>imap_msgno()</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>         An <class>IMAP\Connection</class> instance.
  <info>int</info>              <strong>$message_num</strong>  The message number.

<comment>Return:</comment>
  <info>int|false</info>  The UID of the given message.

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


id: imap_undelete
type: function
doc:
<comment>Description:</comment>
  Unmark the message which is marked deleted
  
  Removes the deletion flag for a specified message, which is set by <strong>imap_delete()</strong> or
  <strong>imap_mail_move()</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>          An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$message_nums</strong>  A <info>string</info> representing one or more messages in IMAP4-style sequence
                                  format (<return>"n"</return>, <return>"n:m"</return>, or combination of these delimited by commas).
  <info>int</info>              <strong>$flags</strong>         

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

<comment>See Also:</comment>
   * <strong>imap_delete()</strong>
   * <strong>imap_mail_move()</strong>


id: imap_unsubscribe
type: function
doc:
<comment>Description:</comment>
  Unsubscribe from a mailbox
  
  Unsubscribe from the specified <strong>$mailbox</strong>.

<comment>Param:</comment>
  <info>IMAP\Connection</info>  <strong>$imap</strong>     An <class>IMAP\Connection</class> instance.
  <info>string</info>           <strong>$mailbox</strong>  The mailbox name, see <strong>imap_open()</strong> for more information
                             
                             Passing untrusted data to this parameter is insecure, unless
                             imap.enable_insecure_rsh is disabled.

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

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


id: imap_utf7_decode
type: function
doc:
<comment>Description:</comment>
  Decodes a modified UTF-7 encoded string
  
  Decodes modified UTF-7 <strong>$string</strong> into ISO-8859-1 string.
  
  This function is needed to decode mailbox names that contain certain characters which are not in
  range of printable ASCII characters.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  A modified UTF-7 encoding string, as defined in RFC 2060, section 5.1.3.

<comment>Return:</comment>
  <info>string|false</info>  Returns a string that is encoded in ISO-8859-1 and consists of the same sequence of
                characters in <strong>$string</strong>, or <info>false</info> if <strong>$string</strong> contains invalid modified UTF-7 sequence
                or <strong>$string</strong> contains a character that is not part of ISO-8859-1 character set.

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


id: imap_utf7_encode
type: function
doc:
<comment>Description:</comment>
  Converts ISO-8859-1 string to modified UTF-7 text
  
  Converts <strong>$string</strong> to modified UTF-7 text.
  
  This is needed to encode mailbox names that contain certain characters which are not in range of
  printable ASCII characters.

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

<comment>Return:</comment>
  <info>string</info>  Returns <strong>$string</strong> encoded with the modified UTF-7 encoding as defined in RFC 2060,  section
          5.1.3.

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


id: imap_utf8
type: function
doc:
<comment>Description:</comment>
  Converts MIME-encoded text to UTF-8
  
  Converts the given <strong>$mime_encoded_text</strong> to UTF-8, if the declared charset is known to libc-client.
  Otherwise the given text is decoded, but not converted to UTF-8.

<comment>Param:</comment>
  <info>string</info>  <strong>$mime_encoded_text</strong>  A MIME encoded string. MIME encoding method and the UTF-8
                              specification are described in RFC2047 and RFC2044 respectively.

<comment>Return:</comment>
  <info>string</info>  Returns the decoded string, if possible converted to UTF-8.

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


id: imap_utf8_to_mutf7
type: function
doc:
<comment>Description:</comment>
  Encode a UTF-8 string to modified UTF-7
  
  Encode a UTF-8 string to modified UTF-7 (as specified in RFC 2060, section 5.1.3).
  
  This function is only available, if libcclient exports utf8_to_mutf7().

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

<comment>Return:</comment>
  <info>string|false</info>  Returns <strong>$string</strong> converted to modified UTF-7, or <info>false</info> on failure.

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


id: implode
type: function
doc:
<comment>Description:</comment>
  Join array elements with a string
  
  Alternative signature (not supported with named arguments):
  
  Legacy signature (deprecated as of PHP 7.4.0, removed as of PHP 8.0.0):
  
  Join array elements with a <strong>$separator</strong> string.

<comment>Param:</comment>
  <info>string</info>  <strong>$separator</strong>  Optional. Defaults to an empty string.
  <info>array</info>   <strong>$array</strong>      The array of strings to implode.

<comment>Return:</comment>
  <info>string</info>  Returns a string containing a string representation of all the array elements in the same
          order, with the separator string between each element.

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


id: in_array
type: function
doc:
<comment>Description:</comment>
  Checks if a value exists in an array
  
  Searches for <strong>$needle</strong> in <strong>$haystack</strong> using loose comparison unless <strong>$strict</strong> is set.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$needle</strong>    The searched value.
                    
                    If <strong>$needle</strong> is a string, the comparison is done in a case-sensitive manner.
  <info>array</info>  <strong>$haystack</strong>  The array.
  <info>bool</info>   <strong>$strict</strong>    If the third parameter <strong>$strict</strong> is set to <info>true</info> then the <strong>in_array()</strong> function will
                    also check the types of the <strong>$needle</strong> in the <strong>$haystack</strong>.
                    
                    Prior to PHP 8.0.0, a <return>string</return> <strong>$needle</strong> will match an array value of <return>0</return> in
                    non-strict mode, and vice versa.  That may lead to undesireable results.
                    Similar edge cases exist for other types, as well.  If not absolutely certain of
                    the types of values involved, always use the <strong>$strict</strong> flag to avoid unexpected
                    behavior.

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

<comment>See Also:</comment>
   * <strong>array_search()</strong>
   * <strong>isset()</strong>
   * <strong>array_key_exists()</strong>


id: inet_ntop
type: function
doc:
<comment>Description:</comment>
  Converts a packed internet address to a human readable representation
  
  This function converts a 32bit IPv4, or 128bit IPv6 address (if PHP was built with IPv6 support
  enabled) into an address family appropriate string representation.

<comment>Param:</comment>
  <info>string</info>  <strong>$ip</strong>  A 32bit IPv4, or 128bit IPv6 address.

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

<comment>See Also:</comment>
   * <strong>long2ip()</strong>
   * <strong>ip2long()</strong>
   * <strong>inet_pton()</strong>


id: inet_pton
type: function
doc:
<comment>Description:</comment>
  Converts a human readable IP address to its packed in_addr representation
  
  This function converts a human readable IPv4 or IPv6 address (if PHP was built with IPv6 support
  enabled) into an address family appropriate 32bit or 128bit binary structure.

<comment>Param:</comment>
  <info>string</info>  <strong>$ip</strong>  A human readable IPv4 or IPv6 address.

<comment>Return:</comment>
  <info>string|false</info>  Returns the <return>in_addr</return> representation of the given <strong>$ip</strong>, or <info>false</info> if a syntactically
                invalid <strong>$ip</strong> is given (for example, an IPv4 address without dots or an IPv6 address
                without colons).

<comment>See Also:</comment>
   * <strong>ip2long()</strong>
   * <strong>long2ip()</strong>
   * <strong>inet_ntop()</strong>


id: inflate_add
type: function
doc:
<comment>Description:</comment>
  Incrementally inflate encoded data
  
  Incrementally inflates encoded data in the specified <strong>$context</strong>.
  
  Limitation: header information from GZIP compressed data are not made available.

<comment>Param:</comment>
  <info>InflateContext</info>  <strong>$context</strong>     A context created with <strong>inflate_init()</strong>.
  <info>string</info>          <strong>$data</strong>        A chunk of compressed data.
  <info>int</info>             <strong>$flush_mode</strong>  One of <info>ZLIB_BLOCK</info>, <info>ZLIB_NO_FLUSH</info>, <info>ZLIB_PARTIAL_FLUSH</info>, <info>ZLIB_SYNC_FLUSH</info>
                               (default), <info>ZLIB_FULL_FLUSH</info>, <info>ZLIB_FINISH</info>. Normally you will want to
                               set <info>ZLIB_NO_FLUSH</info> to maximize compression, and <info>ZLIB_FINISH</info> to
                               terminate with the last chunk of data. See the zlib manual for a
                               detailed description of these constants.

<comment>Return:</comment>
  <info>string|false</info>  Returns a chunk of uncompressed data,  or <info>false</info> on failure.

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


id: inflate_get_read_len
type: function
doc:
<comment>Description:</comment>
  Get number of bytes read so far
  
  This function is
  currently not documented; only its argument list is available.

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

<comment>Return:</comment>
  <info>int</info>  Returns number of bytes read so far or <info>false</info> on failure.


id: inflate_get_status
type: function
doc:
<comment>Description:</comment>
  Get decompression status
  
  Usually returns either <info>ZLIB_OK</info> or <info>ZLIB_STREAM_END</info>.

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

<comment>Return:</comment>
  <info>int</info>  Returns decompression status.


id: inflate_init
type: function
doc:
<comment>Description:</comment>
  Initialize an incremental inflate context
  
  Initialize an incremental inflate context with the specified <strong>$encoding</strong>.

<comment>Param:</comment>
  <info>int</info>    <strong>$encoding</strong>  One of the <info>ZLIB_ENCODING_*</info> constants.
  <info>array</info>  <strong>$options</strong>   An associative array which may contain the following elements: level The
                    compression level in range -1..9; defaults to -1. memory The compression memory
                    level in range 1..9; defaults to 8. window The zlib window size (logarithmic) in
                    range 8..15; defaults to 15. strategy One of <info>ZLIB_FILTERED</info>, <info>ZLIB_HUFFMAN_ONLY</info>,
                    <info>ZLIB_RLE</info>, <info>ZLIB_FIXED</info> or <info>ZLIB_DEFAULT_STRATEGY</info> (the default). dictionary A <info>string</info>
                    or an <info>array</info> of <info>strings</info> of the preset dictionary (default: no preset dictionary).
                    
                    The compression level in range -1..9; defaults to -1.
                    
                    The compression memory level in range 1..9; defaults to 8.
                    
                    The zlib window size (logarithmic) in range 8..15; defaults to 15.
                    
                    One of <info>ZLIB_FILTERED</info>, <info>ZLIB_HUFFMAN_ONLY</info>, <info>ZLIB_RLE</info>, <info>ZLIB_FIXED</info> or
                    <info>ZLIB_DEFAULT_STRATEGY</info> (the default).
                    
                    A <info>string</info> or an <info>array</info> of <info>strings</info> of the preset dictionary (default: no preset
                    dictionary).

<comment>Return:</comment>
  <info>InflateContext|false</info>  Returns an inflate context resource (<return>zlib.inflate</return>) on success,  or <info>false</info> on
                        failure.

<comment>See Also:</comment>
   * <strong>inflate_add()</strong>
   * <strong>deflate_init()</strong>


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


id: ini_get
type: function
doc:
<comment>Description:</comment>
  Gets the value of a configuration option
  
  Returns the value of the configuration option on success.

<comment>Param:</comment>
  <info>string</info>  <strong>$option</strong>  The configuration option name.

<comment>Return:</comment>
  <info>string|false</info>  Returns the value of the configuration option as a string on success, or an empty
                string for <return>null</return> values. Returns <info>false</info> if the configuration option doesn't exist.

<comment>See Also:</comment>
   * <strong>get_cfg_var()</strong>
   * <strong>ini_get_all()</strong>
   * <strong>ini_restore()</strong>
   * <strong>ini_set()</strong>


id: ini_get_all
type: function
doc:
<comment>Description:</comment>
  Gets all configuration options
  
  Returns all the registered configuration options.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$extension</strong>  An optional extension name. If not <info>null</info> or the <info>string</info> <return>core</return>, the function
                           returns only options specific for that extension.
  <info>bool</info>         <strong>$details</strong>    Retrieve details settings or only the current value for each setting.
                           Default is <info>true</info> (retrieve details).

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array with directive name as the array key. Returns <info>false</info> and
               raises an <info>E_WARNING</info> level error if the <strong>$extension</strong> doesn't exist.
               
               When <strong>$details</strong> is <info>true</info> (default) the array will contain <return>global_value</return> (set in php.ini),
               <return>local_value</return> (perhaps set with <strong>ini_set()</strong> or .htaccess), and <return>access</return> (the access level).
               
               When <strong>$details</strong> is <info>false</info> the value will be the current value of the option.
               
               See the manual section for information on what access levels mean.
               
               It's possible for a directive to have multiple access levels, which is why <return>access</return>
               shows the appropriate bitmask values.

<comment>See Also:</comment>
   * 
   * <strong>ini_get()</strong>
   * <strong>ini_restore()</strong>
   * <strong>ini_set()</strong>
   * <strong>get_loaded_extensions()</strong>
   * <strong>phpinfo()</strong>
   * ReflectionExtension::getINIEntries


id: ini_parse_quantity
type: function
doc:
<comment>Description:</comment>
  Get interpreted size from ini shorthand syntax
  
  Returns the interpreted size in bytes on success from an ini shorthand.

<comment>Param:</comment>
  <info>string</info>  <strong>$shorthand</strong>  Ini shorthand to parse, must be a number followed by an optional multiplier.
                       The following multipliers are supported: <return>k</return>/<return>K</return> (<return>1024</return>), <return>m</return>/<return>M</return> (<return>1048576</return>), <return>g</return>/<return>G</return>
                      (<return>1073741824</return>).
                       The number can be a decimal, hex (prefixed with <return>0x</return> or <return>0X</return>), octal (prefixed
                      with <return>0o</return>, <return>0O</return> or <return>0</return>) or binary (prefixed with <return>0b</return> or <return>0B</return>)

<comment>Return:</comment>
  <info>int</info>  Returns the interpreted size in bytes as an <info>int</info>.

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


id: ini_restore
type: function
doc:
<comment>Description:</comment>
  Restores the value of a configuration option
  
  Restores a given configuration option to its original value.

<comment>Param:</comment>
  <info>string</info>  <strong>$option</strong>  The configuration option name.

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

<comment>See Also:</comment>
   * <strong>ini_get()</strong>
   * <strong>ini_get_all()</strong>
   * <strong>ini_set()</strong>


id: ini_set
type: function
doc:
<comment>Description:</comment>
  Sets the value of a configuration option
  
  Sets the value of the given configuration option.  The configuration option will keep this new
  value during the script's execution, and will be restored at the script's ending.

<comment>Param:</comment>
  <info>string</info>                      <strong>$option</strong>  Not all the available options can be changed using <strong>ini_set()</strong>.
                                       There is a list of all available options in the appendix.
  <info>string|int|float|bool|null</info>  <strong>$value</strong>   The new value for the option.

<comment>Return:</comment>
  <info>string|false</info>  Returns the old value on success, <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>get_cfg_var()</strong>
   * <strong>ini_get()</strong>
   * <strong>ini_get_all()</strong>
   * <strong>ini_restore()</strong>
   * How to change configuration settings


id: inotify_add_watch
type: function
doc:
<comment>Description:</comment>
  Add a watch to an initialized inotify instance
  
  <strong>inotify_add_watch()</strong> adds a new watch or modify an existing watch for the file or directory
  specified in <strong>$pathname</strong>.
  
  Using <strong>inotify_add_watch()</strong> on a watched object replaces the existing watch. Using the <info>IN_MASK_ADD</info>
  constant adds (OR) events to the existing watch.

<comment>Param:</comment>
  <info>resource</info>  <strong>$inotify_instance</strong>  Resource returned by
                               <strong>inotify_init()</strong>
  <info>string</info>    <strong>$pathname</strong>          File or directory to watch
  <info>int</info>       <strong>$mask</strong>              Events to watch for. See Predefined Constants.

<comment>Return:</comment>
  <info>int</info>  The return value is a unique (inotify instance wide) watch descriptor.

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


id: inotify_init
type: function
doc:
<comment>Description:</comment>
  Initialize an inotify instance
  
  Initialize an inotify instance for use with <strong>inotify_add_watch()</strong>

<comment>Return:</comment>
  <info>resource</info>  A stream resource or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>inotify_add_watch()</strong>
   * <strong>inotify_rm_watch()</strong>
   * <strong>inotify_queue_len()</strong>
   * <strong>inotify_read()</strong>
   * <strong>fclose()</strong>


id: inotify_queue_len
type: function
doc:
<comment>Description:</comment>
  Return a number upper than zero if there are pending events
  
  This function allows to know if <strong>inotify_read()</strong> will block or not. If a number upper than zero is
  returned, there are pending events and  <strong>inotify_read()</strong> will not block.

<comment>Param:</comment>
  <info>resource</info>  <strong>$inotify_instance</strong>  Resource returned by
                               <strong>inotify_init()</strong>

<comment>Return:</comment>
  <info>int</info>  Returns a number upper than zero if there are pending events.

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


id: inotify_read
type: function
doc:
<comment>Description:</comment>
  Read events from an inotify instance
  
  Read inotify events from an inotify instance.

<comment>Param:</comment>
  <info>resource</info>  <strong>$inotify_instance</strong>  Resource returned by
                               <strong>inotify_init()</strong>

<comment>Return:</comment>
  <info>array</info>  An array of inotify events or <info>false</info> if no events was pending and <strong>$inotify_instance</strong> is
         non-blocking. Each event is an array with the following keys: wd is a watch descriptor
         returned by <strong>inotify_add_watch()</strong>mask is a bit mask of eventscookie is a unique id to connect
         related events (e.g. <info>IN_MOVE_FROM</info> and <info>IN_MOVE_TO</info>)name is the name of a file (e.g. if a file
         was modified in a watched directory)

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


id: inotify_rm_watch
type: function
doc:
<comment>Description:</comment>
  Remove an existing watch from an inotify instance
  
  <strong>inotify_rm_watch()</strong> removes the watch <strong>$watch_descriptor</strong> from the inotify instance
  <strong>$inotify_instance</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$inotify_instance</strong>  Resource returned by
                               <strong>inotify_init()</strong>
  <info>int</info>       <strong>$watch_descriptor</strong>  Watch to remove from the instance

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

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


id: intdiv
type: function
doc:
<comment>Description:</comment>
  Integer division
  
  Returns the integer quotient of the division of <strong>$num1</strong> by <strong>$num2</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$num1</strong>  Number to be divided.
  <info>int</info>  <strong>$num2</strong>  Number which divides the <strong>$num1</strong>.

<comment>Return:</comment>
  <info>int</info>  The integer quotient of the division of <strong>$num1</strong> by <strong>$num2</strong>.

<comment>See Also:</comment>
   * <return>/</return> - Floating-point division
   * <return>%</return> - Integer modulus
   * <strong>fmod()</strong> - Floating-point modulo


id: interface_exists
type: function
doc:
<comment>Description:</comment>
  Checks if the interface has been defined
  
  Checks if the given interface has been defined.

<comment>Param:</comment>
  <info>string</info>  <strong>$interface</strong>  The interface name
  <info>bool</info>    <strong>$autoload</strong>   Whether to autoload if not already loaded.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the interface given by  <strong>$interface</strong> has been defined, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>get_declared_interfaces()</strong>
   * <strong>class_implements()</strong>
   * <strong>class_exists()</strong>
   * <strong>enum_exists()</strong>


id: intl_error_name
type: function
doc:
<comment>Description:</comment>
  Get symbolic name for a given error code
  
  Return ICU error code name.

<comment>Param:</comment>
  <info>int</info>  <strong>$errorCode</strong>  ICU error code.

<comment>Return:</comment>
  <info>string</info>  The returned string will be the same as the name of the error code constant.

<comment>See Also:</comment>
   * <strong>intl_is_failure()</strong>
   * <strong>intl_get_error_code()</strong>
   * <strong>intl_get_error_message()</strong>


id: intl_get_error_code
type: function
doc:
<comment>Description:</comment>
  Get the last error code
  
  Useful to handle errors occurred in static methods when there's no object to get error code from.

<comment>Return:</comment>
  <info>int</info>  Error code returned by the last API function call.

<comment>See Also:</comment>
   * <strong>intl_is_failure()</strong>
   * <strong>intl_error_name()</strong>
   * <strong>intl_get_error_message()</strong>
   * <strong>collator_get_error_code()</strong>
   * <strong>numfmt_get_error_code()</strong>


id: intl_get_error_message
type: function
doc:
<comment>Description:</comment>
  Get description of the last error
  
  Get error message from last internationalization function called.

<comment>Return:</comment>
  <info>string</info>  Description of an error occurred in the last API function call.

<comment>See Also:</comment>
   * <strong>intl_error_name()</strong>
   * <strong>intl_get_error_code()</strong>
   * <strong>intl_is_failure()</strong>
   * <strong>collator_get_error_message()</strong>
   * <strong>numfmt_get_error_message()</strong>


id: intl_is_failure
type: function
doc:
<comment>Description:</comment>
  Check whether the given error code indicates failure
  
  

<comment>Param:</comment>
  <info>int</info>  <strong>$errorCode</strong>  is a value that returned by functions: <strong>intl_get_error_code()</strong>,
                   <strong>collator_get_error_code()</strong> .

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if it the code indicates some failure, and <info>false</info> in case of success or a warning.

<comment>See Also:</comment>
   * <strong>intl_get_error_code()</strong>
   * <strong>collator_get_error_code()</strong>
   * <strong>Collator-getErrorCode()</strong>


id: intval
type: function
doc:
<comment>Description:</comment>
  Get the integer value of a variable
  
  Returns the <info>int</info> value of <strong>$value</strong>, using the specified <strong>$base</strong> for the conversion  (the default is
  base 10). <strong>intval()</strong> should not be used on objects, as doing so will emit an <info>E_WARNING</info> level error
  and return 1.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The scalar value being converted to an integer
  <info>int</info>    <strong>$base</strong>   The base for the conversion
                 
                 If <strong>$base</strong> is 0, the base used is determined by the format of <strong>$value</strong>:  if string
                 includes a "0x" (or "0X") prefix, the base is taken as 16 (hex); otherwise,  if
                 string starts with a "0b" (or "0B"), the base is taken as 2 (binary); otherwise,
                 if string starts with "0", the base is taken as 8 (octal); otherwise,  the base is
                 taken as 10 (decimal).
                 
                 if string includes a "0x" (or "0X") prefix, the base is taken as 16 (hex);
                 otherwise,
                 
                 if string starts with a "0b" (or "0B"), the base is taken as 2 (binary); otherwise,
                 
                 if string starts with "0", the base is taken as 8 (octal); otherwise,
                 
                 the base is taken as 10 (decimal).

<comment>Return:</comment>
  <info>int</info>  The integer value of <strong>$value</strong> on success, or 0 on failure. Empty arrays return 0, non-empty
       arrays return 1.
       
       The maximum value depends on the system. 32 bit systems have a  maximum signed integer range
       of -2147483648 to 2147483647. So for example  on such a system, <return>intval('1000000000000')</return> will
       return  2147483647. The maximum signed integer value for 64 bit systems is
       9223372036854775807.
       
       Strings will most likely return 0 although this depends on the  leftmost characters of the
       string. The common rules of  integer casting  apply.

<comment>See Also:</comment>
   * <strong>boolval()</strong>
   * <strong>floatval()</strong>
   * <strong>strval()</strong>
   * <strong>settype()</strong>
   * <strong>is_numeric()</strong>
   * Type juggling
   * BCMath Arbitrary Precision Mathematics Functions


id: ip2long
type: function
doc:
<comment>Description:</comment>
  Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer
  
  The function <strong>ip2long()</strong> generates a long integer representation of IPv4 Internet network address
  from its Internet standard format (dotted string) representation.
  
  <strong>ip2long()</strong> will also work with non-complete IP addresses. Read
  http://ps-2.kev009.com/wisclibrary/aix52/usr/share/man/info/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm
  for more info.

<comment>Param:</comment>
  <info>string</info>  <strong>$ip</strong>  A standard format address.

<comment>Return:</comment>
  <info>int|false</info>  Returns the long integer or <info>false</info> if <strong>$ip</strong> is invalid.

<comment>See Also:</comment>
   * <strong>long2ip()</strong>
   * <strong>sprintf()</strong>


id: iptcembed
type: function
doc:
<comment>Description:</comment>
  Embeds binary IPTC data into a JPEG image
  
  Embeds binary IPTC data into a JPEG image.

<comment>Param:</comment>
  <info>string</info>  <strong>$iptc_data</strong>  The data to be written.
  <info>string</info>  <strong>$filename</strong>   Path to the JPEG image.
  <info>int</info>     <strong>$spool</strong>      Spool flag. If the spool flag is less than 2 then the JPEG will be  returned
                      as a string. Otherwise the JPEG will be printed to STDOUT.

<comment>Return:</comment>
  <info>string|bool</info>  If <strong>$spool</strong> is less than 2, the JPEG will be returned, or <info>false</info> on failure. Otherwise
               returns <info>true</info> on success or <info>false</info> on failure.


id: iptcparse
type: function
doc:
<comment>Description:</comment>
  Parse a binary IPTC block into single tags
  
  Parses an IPTC block into its single tags.

<comment>Param:</comment>
  <info>string</info>  <strong>$iptc_block</strong>  A binary IPTC block.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array using the tagmarker as an index and the value as the value. It
               returns <info>false</info> on error or if no IPTC data was found.


id: is_a
type: function
doc:
<comment>Description:</comment>
  Checks whether the object is of a given type or subtype
  
  Checks if the given <strong>$object_or_class</strong> is of this object type or has this object type as one of its
  supertypes.

<comment>Param:</comment>
  <info>mixed</info>   <strong>$object_or_class</strong>  A class name or an object instance.
  <info>string</info>  <strong>$class</strong>            The class or interface name
  <info>bool</info>    <strong>$allow_string</strong>     If this parameter set to <info>false</info>, string class name as <strong>$object_or_class</strong> is
                            not allowed. This also prevents from calling autoloader if the class
                            doesn't exist.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the object is of this object type or has this object type as one of its
        supertypes, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>get_class()</strong>
   * <strong>get_parent_class()</strong>
   * <strong>is_subclass_of()</strong>


id: is_array
type: function
doc:
<comment>Description:</comment>
  Finds whether a variable is an array
  
  Finds whether the given variable is an array.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is an <info>array</info>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>array_is_list()</strong>
   * <strong>is_float()</strong>
   * <strong>is_int()</strong>
   * <strong>is_string()</strong>
   * <strong>is_object()</strong>


id: is_bool
type: function
doc:
<comment>Description:</comment>
  Finds out whether a variable is a boolean
    
  
  Finds whether the given variable is a boolean.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is a <info>bool</info>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>is_float()</strong>
   * <strong>is_int()</strong>
   * <strong>is_string()</strong>
   * <strong>is_object()</strong>
   * <strong>is_array()</strong>


id: is_callable
type: function
doc:
<comment>Description:</comment>
  Verify that a value can be called as a function from the current scope.
    
  
  Verify that a value is a <info>callable</info>.

<comment>Param:</comment>
  <info>mixed</info>   <strong>$value</strong>          The value to check
  <info>bool</info>    <strong>$syntax_only</strong>    If set to <info>true</info> the function only verifies that <strong>$value</strong> might be a function
                          or method. It will only reject simple variables that are not strings, or
                          an array that does not have a valid structure to be used as a callback.
                          The valid ones are supposed to have only 2 entries, the first of which is
                          an object or a string, and the second a string.
  <info>string</info>  <strong>$callable_name</strong>  Receives the "callable name".  In the example below it is
                          "someClass::someMethod".  Note, however, that despite the implication that
                          someClass::SomeMethod() is a callable static method, this is not the case.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is callable, <info>false</info>  otherwise.

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


id: is_countable
type: function
doc:
<comment>Description:</comment>
  Verify that the contents of a variable is a countable value
    
  
  Verify that the contents of a variable is an <info>array</info> or an object implementing <class>Countable</class>

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value to check

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is countable, <info>false</info>  otherwise.

<comment>See Also:</comment>
   * <strong>is_array()</strong>
   * <strong>is_object()</strong>
   * <strong>is_iterable()</strong>
   * <strong>is_bool()</strong>


id: is_dir
type: function
doc:
<comment>Description:</comment>
  Tells whether the filename is a directory
  
  Tells whether the given filename is a directory.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Path to the file. If <strong>$filename</strong> is a relative filename, it will be checked
                     relative to the current working directory. If <strong>$filename</strong> is a symbolic or hard
                     link  then the link will be resolved and checked. If you have enabled
                     open_basedir further restrictions may apply.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the filename exists and is a directory, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>chdir()</strong>
   * <strong>dir()</strong>
   * <strong>opendir()</strong>
   * <strong>is_file()</strong>
   * <strong>is_link()</strong>


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


id: is_executable
type: function
doc:
<comment>Description:</comment>
  Tells whether the filename is executable
  
  Tells whether the filename is executable.

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

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the filename exists and is executable, or <info>false</info> on error. On POSIX systems,
        a file is executable if the executable bit of the file permissions is set. For Windows, see
        the note below.

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


id: is_file
type: function
doc:
<comment>Description:</comment>
  Tells whether the filename is a regular file
  
  Tells whether the given file is a regular file.

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

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the filename exists and is a regular file, <info>false</info> otherwise.
        
        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>is_dir()</strong>
   * <strong>is_link()</strong>
   * <class>SplFileInfo</class>


id: is_finite
type: function
doc:
<comment>Description:</comment>
  Checks whether a float is finite
  
  Returns whether the given <strong>$num</strong> is a finite float.
  
  A finite float is neither <return>NAN</return> (<strong>is_nan()</strong>), nor infinite (<strong>is_infinite()</strong>).

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The <info>float</info> to check

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if <strong>$num</strong> is none of <return>NAN</return>, <return>INF</return>, <return>-INF</return>, else <info>false</info>.

<comment>See Also:</comment>
   * <strong>is_infinite()</strong>
   * <strong>is_nan()</strong>


id: is_float
type: function
doc:
<comment>Description:</comment>
  Finds whether the type of a variable is float
  
  Finds whether the type of the given variable is float.
  
  To test if a variable is a number or a numeric string (such as form input, which is always a
  string), you must use <strong>is_numeric()</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is a <info>float</info>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>is_bool()</strong>
   * <strong>is_int()</strong>
   * <strong>is_numeric()</strong>
   * <strong>is_string()</strong>
   * <strong>is_array()</strong>
   * <strong>is_object()</strong>


id: is_infinite
type: function
doc:
<comment>Description:</comment>
  Checks whether a float is infinite
  
  Returns whether the given <strong>$num</strong> is either <return>INF</return> or <return>-INF</return>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The <info>float</info> to check

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if <strong>$num</strong> is either <return>INF</return> or <return>-INF</return>, else <info>false</info>.

<comment>See Also:</comment>
   * <strong>is_finite()</strong>
   * <strong>is_nan()</strong>


id: is_int
type: function
doc:
<comment>Description:</comment>
  Find whether the type of a variable is integer
  
  Finds whether the type of the given variable is integer.
  
  To test if a variable is a number or a numeric string (such as form input, which is always a
  string), you must use <strong>is_numeric()</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is an <info>int</info>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>is_bool()</strong>
   * <strong>is_float()</strong>
   * <strong>is_numeric()</strong>
   * <strong>is_string()</strong>
   * <strong>is_array()</strong>
   * <strong>is_object()</strong>


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


id: is_iterable
type: function
doc:
<comment>Description:</comment>
  Verify that the contents of a variable is an iterable value
    
  
  Verify that the contents of a variable is accepted by the <info>iterable</info> pseudo-type, i.e. that it is
  either an <info>array</info> or an object implementing <class>Traversable</class>

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value to check

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is iterable, <info>false</info>  otherwise.

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


id: is_link
type: function
doc:
<comment>Description:</comment>
  Tells whether the filename is a symbolic link
  
  Tells whether the given file is a symbolic link.

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

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the filename exists and is a symbolic link, <info>false</info> otherwise.

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


id: is_nan
type: function
doc:
<comment>Description:</comment>
  Checks whether a float is NAN
  
  Returns whether the given <strong>$num</strong> is <return>NAN</return> (Not A Number).
  
  <return>NAN</return> is returned from mathematical operations that are undefined, for example when passing
  parameters outside of function’s input domain. The square root (<strong>sqrt()</strong>) is only defined for
  positive numbers, passing a negative number will result in <return>NAN</return>. Other examples of operations
  returning <return>NAN</return> are dividing <return>INF</return> by <return>INF</return> and any operation involving an existing <return>NAN</return> value.
  
  Despite its name of Not A Number, <return>NAN</return> is a valid value of type <info>float</info>.
  
  <return>NAN</return> does not compare equal to <return>NAN</return>. To check whether a float is <return>NAN</return>, <strong>is_nan()</strong> must be used.
  Checking $float === NAN will not work.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The <info>float</info> to check

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if <strong>$num</strong> is <return>NAN</return>, else <info>false</info>.

<comment>See Also:</comment>
   * <strong>is_finite()</strong>
   * <strong>is_infinite()</strong>


id: is_null
type: function
doc:
<comment>Description:</comment>
  Finds whether a variable is null
    
  
  Finds whether the given variable is <info>null</info>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is <info>null</info>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * The <info>null</info> type
   * <strong>isset()</strong>
   * <strong>is_bool()</strong>
   * <strong>is_numeric()</strong>
   * <strong>is_float()</strong>
   * <strong>is_int()</strong>
   * <strong>is_string()</strong>
   * <strong>is_object()</strong>
   * <strong>is_array()</strong>


id: is_numeric
type: function
doc:
<comment>Description:</comment>
  Finds whether a variable is a number or a numeric string
    
  
  Determines if the given variable is a number or a numeric string.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is a number or a numeric string, <info>false</info> otherwise.

<comment>See Also:</comment>
   * Numeric strings
   * <strong>ctype_digit()</strong>
   * <strong>is_bool()</strong>
   * <strong>is_null()</strong>
   * <strong>is_float()</strong>
   * <strong>is_int()</strong>
   * <strong>is_string()</strong>
   * <strong>is_object()</strong>
   * <strong>is_array()</strong>
   * <strong>filter_var()</strong>


id: is_object
type: function
doc:
<comment>Description:</comment>
  Finds whether a variable is an object
  
  Finds whether the given variable is an object.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is an <info>object</info>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>is_bool()</strong>
   * <strong>is_int()</strong>
   * <strong>is_float()</strong>
   * <strong>is_string()</strong>
   * <strong>is_array()</strong>


id: is_readable
type: function
doc:
<comment>Description:</comment>
  Tells whether a file exists and is readable
  
  Tells whether a file exists and is readable.

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

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the file or directory specified by <strong>$filename</strong> exists and is readable, <info>false</info>
        otherwise.

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


id: is_real
type: function
doc:
<comment>Description:</comment>
  Alias of is_float
  
  This function is an alias of:  <strong>is_float()</strong>.
  
  This alias was
  DEPRECATED in PHP 7.4.0, and REMOVED as of PHP 8.0.0.


id: is_resource
type: function
doc:
<comment>Description:</comment>
  Finds whether a variable is a resource
    
  
  Finds whether the given variable is a <info>resource</info>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is a <info>resource</info>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * The resource-type documentation
   * <strong>get_resource_type()</strong>


id: is_scalar
type: function
doc:
<comment>Description:</comment>
  Finds whether a variable is a scalar
    
  
  Finds whether the given variable is a scalar.
  
  Scalar variables are those containing an <info>int</info>,  <info>float</info>, <info>string</info> or <info>bool</info>.   Types <info>array</info>, <info>object</info>,
  <info>resource</info>  and <info>null</info> are not scalar.
  
  <strong>is_scalar()</strong> does not consider <info>resource</info> type values to be scalar as resources are abstract
  datatypes  which are currently based on integers. This implementation detail should  not be relied
  upon, as it may change.
  
  <strong>is_scalar()</strong> does not consider NULL to be scalar.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is a scalar, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>is_float()</strong>
   * <strong>is_int()</strong>
   * <strong>is_numeric()</strong>
   * <strong>is_real()</strong>
   * <strong>is_string()</strong>
   * <strong>is_bool()</strong>
   * <strong>is_object()</strong>
   * <strong>is_array()</strong>


id: is_soap_fault
type: function
doc:
<comment>Description:</comment>
  Checks if a SOAP call has failed
  
  This function is useful to check if the SOAP call failed, but without using exceptions. To use it,
  create a <class>SoapClient</class> object with the <return>exceptions</return> option set to zero or <info>false</info>. In this case, the SOAP
  method will return a special <class>SoapFault</class> object which encapsulates the fault details (faultcode,
  faultstring, faultactor and faultdetails).
  
  If <return>exceptions</return> is not set then SOAP call will throw an exception on error. <strong>is_soap_fault()</strong> checks
  if the given parameter is a <class>SoapFault</class> object.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$object</strong>  The object to test.

<comment>Return:</comment>
  <info>bool</info>  This will return <info>true</info> on error, and <info>false</info> otherwise.

<comment>See Also:</comment>
   * SoapClient::__construct
   * SoapFault::__construct


id: is_string
type: function
doc:
<comment>Description:</comment>
  Find whether the type of a variable is string
  
  Finds whether the type of the given variable is string.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The variable being evaluated.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$value</strong> is of type <info>string</info>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>is_float()</strong>
   * <strong>is_int()</strong>
   * <strong>is_bool()</strong>
   * <strong>is_object()</strong>
   * <strong>is_array()</strong>


id: is_subclass_of
type: function
doc:
<comment>Description:</comment>
  Checks if the object has this class as one of its parents or implements it
  
  Checks if the given <strong>$object_or_class</strong> has the class <strong>$class</strong> as one of its parents or implements it.

<comment>Param:</comment>
  <info>mixed</info>   <strong>$object_or_class</strong>  A class name or an object instance. No error is generated if the class
                            does not exist.
  <info>string</info>  <strong>$class</strong>            The class name
  <info>bool</info>    <strong>$allow_string</strong>     If this parameter set to false, string class name as <strong>$object_or_class</strong> is
                            not allowed. This also prevents from calling autoloader if the class
                            doesn't exist.

<comment>Return:</comment>
  <info>bool</info>  This function returns <info>true</info> if the object <strong>$object_or_class</strong>, belongs to a class which is a
        subclass of <strong>$class</strong>, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>get_class()</strong>
   * <strong>get_parent_class()</strong>
   * <strong>is_a()</strong>
   * <strong>class_parents()</strong>


id: is_tainted
type: function
doc:
<comment>Description:</comment>
  Checks whether a string is tainted
  
  Checks whether a string is tainted

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

<comment>Return:</comment>
  <info>bool</info>  Return TRUE if the string is tainted, FALSE otherwise.


id: is_uploaded_file
type: function
doc:
<comment>Description:</comment>
  Tells whether the file was uploaded via HTTP POST
  
  Returns <info>true</info> if the file named by <strong>$filename</strong> was uploaded via HTTP POST. This is useful to help
  ensure that a malicious user hasn't tried to trick the script into working on files upon which it
  should not be working--for instance, /etc/passwd.
  
  This sort of check is especially important if there is any chance that anything done with uploaded
  files could reveal their contents to the user, or even to other users on the same system.
  
  For proper working, the function <strong>is_uploaded_file()</strong> needs an argument like
  $_FILES['userfile']['tmp_name'], - the name of the uploaded file on the client's machine
  $_FILES['userfile']['name'] does not work.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The filename being checked.

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

<comment>See Also:</comment>
   * <strong>move_uploaded_file()</strong>
   * $_FILES
   * See Handling file uploads for a simple usage example.


id: is_writable
type: function
doc:
<comment>Description:</comment>
  Tells whether the filename is writable
  
  Returns <info>true</info> if the <strong>$filename</strong> exists and is writable.  The filename argument may be a directory
  name allowing you to check if a directory is writable.
  
  Keep in mind that PHP may be accessing the file as the user id that the web server runs as (often
  'nobody').

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The filename being checked.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the <strong>$filename</strong> exists and is writable.

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


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


id: isset
type: function
doc:
<comment>Description:</comment>
  Determine if a variable is declared and is different than null
  
  Determine if a variable is considered set, this means if a variable is declared and is different
  than <info>null</info>.
  
  If a variable has been unset with the <strong>unset()</strong> function, it is no longer considered to be set.
  
  <strong>isset()</strong> will return <info>false</info> when checking a variable that has been assigned to <info>null</info>. Also note that
  a null character (<return>"\0"</return>) is not equivalent to the PHP <info>null</info> constant.
  
  If multiple parameters are supplied then <strong>isset()</strong> will return <info>true</info> only if all of the parameters
  are considered set. Evaluation goes from left to right and stops as soon as an unset variable is
  encountered.

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

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$var</strong> exists and has any value other than <info>null</info>. <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>empty()</strong>
   * __isset()
   * <strong>unset()</strong>
   * <strong>defined()</strong>
   * the type comparison tables
   * <strong>array_key_exists()</strong>
   * <strong>is_null()</strong>
   * the error control @ operator


id: iterator_apply
type: function
doc:
<comment>Description:</comment>
  Call a function for every element in an iterator
  
  Calls a function for every element in an iterator.

<comment>Param:</comment>
  <info>Traversable</info>  <strong>$iterator</strong>  The iterator object to iterate over.
  <info>callable</info>     <strong>$callback</strong>  The callback function to call on every element. This function only
                          receives the given <strong>$args</strong>, so it is nullary by default. If <return>count($args) ===
                          3</return>, for instance, the callback function is ternary.  The function must
                          return <info>true</info> in order to continue iterating over the <strong>$iterator</strong>.
                          
                          The function must return <info>true</info> in order to continue iterating over the
                          <strong>$iterator</strong>.
  <info>array|null</info>   <strong>$args</strong>      An <info>array</info> of arguments; each element of <strong>$args</strong> is passed to the callback
                          <strong>$callback</strong> as separate argument.

<comment>Return:</comment>
  <info>int</info>  Returns the iteration count.

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


id: iterator_count
type: function
doc:
<comment>Description:</comment>
  Count the elements in an iterator
  
  Count the elements in an iterator. <strong>iterator_count()</strong> is not guaranteed to retain the current
  position of the <strong>$iterator</strong>.

<comment>Param:</comment>
  <info>Traversable|array</info>  <strong>$iterator</strong>  The iterator being counted.

<comment>Return:</comment>
  <info>int</info>  The number of elements in <strong>$iterator</strong>.


id: iterator_to_array
type: function
doc:
<comment>Description:</comment>
  Copy the iterator into an array
  
  Copy the elements of an iterator into an array.

<comment>Param:</comment>
  <info>Traversable|array</info>  <strong>$iterator</strong>       The iterator being copied.
  <info>bool</info>               <strong>$preserve_keys</strong>  Whether to use the iterator element keys as index.
                                     
                                     If a key is an <info>array</info> or <info>object</info>, a warning will be generated.
                                     <info>null</info> keys will be converted to an empty string, <info>float</info> keys will
                                     be truncated to their <info>int</info> counterpart, <info>resource</info> keys will
                                     generate a warning and be converted to their resource ID, and
                                     <info>bool</info> keys will be converted to integers.
                                     
                                     If this parameter is not set or set to <info>true</info>, duplicate keys
                                     will be overwritten. The last value with a given key will be in
                                     the returned <info>array</info>. Set this parameter to <info>false</info> to get all the
                                     values in any case.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> containing the elements of the <strong>$iterator</strong>.


id: jddayofweek
type: function
doc:
<comment>Description:</comment>
  Returns the day of the week
  
  Returns the day of the week.  Can return a string or an integer depending on the mode.

<comment>Param:</comment>
  <info>int</info>  <strong>$julian_day</strong>  A julian day number as integer
  <info>int</info>  <strong>$mode</strong>        

<comment>Return:</comment>
  <info>int|string</info>  The gregorian weekday as either an integer or string.


id: jdmonthname
type: function
doc:
<comment>Description:</comment>
  Returns a month name
  
  Returns a string containing a month name. <strong>$mode</strong> tells this function which calendar to convert the
  Julian Day Count to, and what type of month names are to be returned. Calendar
  modesModeMeaningValues<info>CAL_MONTH_GREGORIAN_SHORT</info>Gregorian - abbreviatedJan, Feb, Mar, Apr, May,
  Jun, Jul, Aug, Sep, Oct, Nov, Dec<info>CAL_MONTH_GREGORIAN_LONG</info>GregorianJanuary, February, March, April,
  May, June, July, August, September, October, November, December<info>CAL_MONTH_JULIAN_SHORT</info>Julian -
  abbreviatedJan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov,
  Dec<info>CAL_MONTH_JULIAN_LONG</info>JulianJanuary, February, March, April, May, June, July, August, September,
  October, November, December<info>CAL_MONTH_JEWISH</info>JewishTishri, Heshvan, Kislev, Tevet, Shevat, Adar,
  Adar I, Adar II, Nisan, Iyyar, Sivan, Tammuz, Av, Elul<info>CAL_MONTH_FRENCH</info>French
  RepublicanVendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial,
  Messidor, Thermidor, Fructidor, Extra

<comment>Param:</comment>
  <info></info>     <strong>$jday</strong>  The Julian Day to operate on
  <info>int</info>  <strong>$mode</strong>  The calendar mode (see table above).

<comment>Return:</comment>
  <info>string</info>  The month name for the given Julian Day and <strong>$mode</strong>.


id: jdtofrench
type: function
doc:
<comment>Description:</comment>
  Converts a Julian Day Count to the French Republican Calendar
  
  Converts a Julian Day Count to the French Republican Calendar.

<comment>Param:</comment>
  <info>int</info>  <strong>$julian_day</strong>  A julian day number as integer

<comment>Return:</comment>
  <info>string</info>  The french revolution date as a string in the form "month/day/year"

<comment>See Also:</comment>
   * <strong>frenchtojd()</strong>
   * <strong>cal_from_jd()</strong>


id: jdtogregorian
type: function
doc:
<comment>Description:</comment>
  Converts Julian Day Count to Gregorian date
  
  Converts Julian Day Count to a string containing the Gregorian date in the format of
  "month/day/year".

<comment>Param:</comment>
  <info>int</info>  <strong>$julian_day</strong>  A julian day number as integer

<comment>Return:</comment>
  <info>string</info>  The gregorian date as a string in the form "month/day/year"

<comment>See Also:</comment>
   * <strong>gregoriantojd()</strong>
   * <strong>cal_from_jd()</strong>


id: jdtojewish
type: function
doc:
<comment>Description:</comment>
  Converts a Julian day count to a Jewish calendar date
  
  Converts a Julian Day Count to the Jewish Calendar.

<comment>Param:</comment>
  <info>int</info>   <strong>$julian_day</strong>  A julian day number as integer
  <info>bool</info>  <strong>$hebrew</strong>      If the <strong>$hebrew</strong> parameter is set to <info>true</info>, the <strong>$flags</strong> parameter is used for
                     Hebrew, ISO-8859-8 encoded string based, output format.
  <info>int</info>   <strong>$flags</strong>       A bitmask which may consist of <info>CAL_JEWISH_ADD_ALAFIM_GERESH</info>,
                     <info>CAL_JEWISH_ADD_ALAFIM</info> and <info>CAL_JEWISH_ADD_GERESHAYIM</info>.

<comment>Return:</comment>
  <info>string</info>  The Jewish date as a string in the form "month/day/year", or an ISO-8859-8 encoded Hebrew
          date string, according to the <strong>$hebrew</strong> parameter.

<comment>See Also:</comment>
   * <strong>jewishtojd()</strong>
   * <strong>cal_from_jd()</strong>


id: jdtojulian
type: function
doc:
<comment>Description:</comment>
  Converts a Julian Day Count to a Julian Calendar Date
  
  Converts Julian Day Count to a string containing the Julian Calendar Date in the format of
  "month/day/year".

<comment>Param:</comment>
  <info>int</info>  <strong>$julian_day</strong>  A julian day number as integer

<comment>Return:</comment>
  <info>string</info>  The julian date as a string in the form "month/day/year"

<comment>See Also:</comment>
   * <strong>juliantojd()</strong>
   * <strong>cal_from_jd()</strong>


id: jdtounix
type: function
doc:
<comment>Description:</comment>
  Convert Julian Day to Unix timestamp
  
  This function will return a Unix timestamp corresponding to the Julian Day given in <strong>$julian_day</strong>.
  The time returned is UTC.

<comment>Param:</comment>
  <info>int</info>  <strong>$julian_day</strong>  A julian day number between <return>2440588</return> and <return>106751993607888</return> on 64bit systems, or
                    between <return>2440588</return> and <return>2465443</return> on 32bit systems.

<comment>Return:</comment>
  <info>int</info>  The unix timestamp for the start (midnight, not noon) of the given Julian day

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


id: jewishtojd
type: function
doc:
<comment>Description:</comment>
  Converts a date in the Jewish Calendar to Julian Day Count
  
  Although this function can handle dates all the way back to the year 1 (3761 B.C.), such use may
  not be meaningful.  The Jewish calendar has been in use for several thousand years, but in the
  early days there was no formula to determine the start of a month. A new month was started when
  the new moon was first observed.

<comment>Param:</comment>
  <info>int</info>  <strong>$month</strong>  The month as a number from <return>1</return> to <return>13</return>, where <return>1</return> means <return>Tishri</return>, <return>13</return> means <return>Elul</return>, and <return>6</return> and <return>7</return>
               mean <return>Adar</return> in regular years, but <return>Adar I</return> and <return>Adar II</return>, respectively, in leap years.
  <info>int</info>  <strong>$day</strong>    The day as a number from <return>1</return> to <return>30</return>. If the month has only 29 days, the first day of the
               following month is assumed.
  <info>int</info>  <strong>$year</strong>   The year as a number between 1 and 9999

<comment>Return:</comment>
  <info>int</info>  The julian day for the given jewish date as an integer.

<comment>See Also:</comment>
   * <strong>jdtojewish()</strong>
   * <strong>cal_to_jd()</strong>


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


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

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

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

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


id: json_decode
type: function
doc:
<comment>Description:</comment>
  Decodes a JSON string
  
  Takes a JSON encoded string and converts it into a PHP value.

<comment>Param:</comment>
  <info>string</info>     <strong>$json</strong>         The <strong>$json</strong> <info>string</info> being decoded.
                           
                           This function only works with UTF-8 encoded strings.
                           
                           PHP implements a superset of JSON as specified in the original RFC 7159.
  <info>bool|null</info>  <strong>$associative</strong>  When <info>true</info>, JSON objects will be returned as associative <info>array</info>s; when
                           <info>false</info>, JSON objects will be returned as <info>object</info>s. When <info>null</info>, JSON objects
                           will be returned as associative <info>array</info>s or <info>object</info>s depending on whether
                           <info>JSON_OBJECT_AS_ARRAY</info> is set in the <strong>$flags</strong>.
  <info>int</info>        <strong>$depth</strong>        Maximum nesting depth of the structure being decoded. The value must be
                           greater than <return>0</return>, and less than or equal to <return>2147483647</return>.
  <info>int</info>        <strong>$flags</strong>        Bitmask of <info>JSON_BIGINT_AS_STRING</info>, <info>JSON_INVALID_UTF8_IGNORE</info>,
                           <info>JSON_INVALID_UTF8_SUBSTITUTE</info>, <info>JSON_OBJECT_AS_ARRAY</info>, <info>JSON_THROW_ON_ERROR</info>.
                           The behaviour of these constants is described on the JSON constants page.

<comment>Return:</comment>
  <info>mixed</info>  Returns the value encoded in <strong>$json</strong> as an appropriate PHP type. Unquoted values <return>true</return>, <return>false</return>
         and <return>null</return> are returned as <info>true</info>, <info>false</info> and <info>null</info> respectively. <info>null</info> is returned if the <strong>$json</strong>
         cannot be decoded or if the encoded data is deeper than the nesting limit.

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


id: json_encode
type: function
doc:
<comment>Description:</comment>
  Returns the JSON representation of a value
  
  Returns a string containing the JSON representation of the supplied <strong>$value</strong>.  If the parameter is
  an <info>array</info> or <info>object</info>, it will be serialized recursively.
  
  If a value to be serialized is an object, then by default only publicly visible properties will be
  included. Alternatively, a class may implement JsonSerializable to control how its values are
  serialized to JSON.
  
  The encoding is affected by the supplied <strong>$flags</strong> and additionally the encoding of float values
  depends on the value of serialize_precision.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The <strong>$value</strong> being encoded. Can be any type except a resource.
                 
                 All string data must be UTF-8 encoded.
                 
                 PHP implements a superset of JSON as specified in the original RFC 7159.
  <info>int</info>    <strong>$flags</strong>  Bitmask consisting of <info>JSON_FORCE_OBJECT</info>, <info>JSON_HEX_QUOT</info>, <info>JSON_HEX_TAG</info>, <info>JSON_HEX_AMP</info>,
                 <info>JSON_HEX_APOS</info>, <info>JSON_INVALID_UTF8_IGNORE</info>, <info>JSON_INVALID_UTF8_SUBSTITUTE</info>,
                 <info>JSON_NUMERIC_CHECK</info>, <info>JSON_PARTIAL_OUTPUT_ON_ERROR</info>, <info>JSON_PRESERVE_ZERO_FRACTION</info>,
                 <info>JSON_PRETTY_PRINT</info>, <info>JSON_UNESCAPED_LINE_TERMINATORS</info>, <info>JSON_UNESCAPED_SLASHES</info>,
                 <info>JSON_UNESCAPED_UNICODE</info>, <info>JSON_THROW_ON_ERROR</info>. The behaviour of these constants is
                 described on the JSON constants page.
  <info>int</info>    <strong>$depth</strong>  Set the maximum depth. Must be greater than zero.

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

<comment>See Also:</comment>
   * JsonSerializable
   * <strong>json_decode()</strong>
   * <strong>json_last_error()</strong>
   * <strong>serialize()</strong>


id: json_last_error
type: function
doc:
<comment>Description:</comment>
  Returns the last error occurred
  
  Returns the last error (if any) occurred during the last JSON encoding/decoding, which did not
  specify <info>JSON_THROW_ON_ERROR</info>.

<comment>Return:</comment>
  <info>int</info>  Returns an integer, the value can be one of the following  constants:

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


id: json_last_error_msg
type: function
doc:
<comment>Description:</comment>
  Returns the error string of the last json_encode() or json_decode() call
  
  Returns the error string of the last <strong>json_encode()</strong> or <strong>json_decode()</strong> call, which did not specify
  <info>JSON_THROW_ON_ERROR</info>.

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

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


id: json_validate
type: function
doc:
<comment>Description:</comment>
  Checks if a string contains valid JSON
  
  Returns whether the given <info>string</info> is syntactically valid JSON. If <strong>json_validate()</strong> returns <info>true</info>,
  <strong>json_decode()</strong> will successfully decode the given string when using the same <strong>$depth</strong> and <strong>$flags</strong>.
  
  If <strong>json_validate()</strong> returns <info>false</info>, the cause can be retrieved using <strong>json_last_error()</strong> and
  <strong>json_last_error_msg()</strong>.
  
  <strong>json_validate()</strong> uses less memory than <strong>json_decode()</strong> if the decoded JSON payload is not used,
  because it does not need to build the array or object structure containing the payload.
  
  Calling <strong>json_validate()</strong> immediately before <strong>json_decode()</strong> will unnecessarily parse the string
  twice, as <strong>json_decode()</strong> implicitly performs validation during decoding.
  
  <strong>json_validate()</strong> should therefore only be used if the decode JSON payload is not immediately used
  and knowing whether the string contains valid JSON is needed.

<comment>Param:</comment>
  <info>string</info>  <strong>$json</strong>   The string to validate.
                  
                  This function only works with UTF-8 encoded strings.
                  
                  PHP implements a superset of JSON as specified in the original RFC 7159.
  <info>int</info>     <strong>$depth</strong>  Maximum nesting depth of the structure being decoded. The value must be greater
                  than <return>0</return>, and less than or equal to <return>2147483647</return>.
  <info>int</info>     <strong>$flags</strong>  Currently only <info>JSON_INVALID_UTF8_IGNORE</info> is accepted.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the given string is syntactically valid JSON, otherwise returns <info>false</info>.

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


id: juliantojd
type: function
doc:
<comment>Description:</comment>
  Converts a Julian Calendar date to Julian Day Count
  
  Valid Range for Julian Calendar 4713 B.C. to 9999 A.D.
  
  Although this function can handle dates all the way back to 4713 B.C., such use may not be
  meaningful. The calendar was created in 46 B.C., but the details did not stabilize until at least
  8 A.D., and perhaps as late at the 4th century. Also, the beginning of a year varied from one
  culture to another - not all accepted January as the first month.
  
  Remember, the current calendar system being used worldwide is the Gregorian calendar.
  <strong>gregoriantojd()</strong> can be used to convert such dates to their Julian Day count.

<comment>Param:</comment>
  <info>int</info>  <strong>$month</strong>  The month as a number from 1 (for January) to 12 (for December)
  <info>int</info>  <strong>$day</strong>    The day as a number from 1 to 31
  <info>int</info>  <strong>$year</strong>   The year as a number between -4713 and 9999

<comment>Return:</comment>
  <info>int</info>  The julian day for the given julian date as an integer.

<comment>See Also:</comment>
   * <strong>jdtojulian()</strong>
   * <strong>cal_to_jd()</strong>


id: key
type: function
doc:
<comment>Description:</comment>
  Fetch a key from an array
  
  <strong>key()</strong> returns the index element of the current array position.

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

<comment>Return:</comment>
  <info>int|string|null</info>  The <strong>key()</strong> function simply returns the key of the array element that's currently
                   being pointed to by the internal pointer.  It does not move the pointer in any
                   way.  If the internal pointer points beyond the end of the elements list or the
                   array is  empty, <strong>key()</strong> returns <info>null</info>.

<comment>See Also:</comment>
   * <strong>current()</strong>
   * <strong>next()</strong>
   * <strong>array_key_first()</strong>
   * foreach


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


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

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.
  <info>int</info>    <strong>$flags</strong>  The optional second parameter <strong>$flags</strong> may be used to modify the sorting behavior
                 using these values:
                 
                 Sorting type flags: <info>SORT_REGULAR</info> - compare items normally; the details are
                 described in the comparison operators section<info>SORT_NUMERIC</info> - compare items
                 numerically<info>SORT_STRING</info> - compare items as strings<info>SORT_LOCALE_STRING</info> - compare items
                 as strings, based on the current locale. It uses the locale, which can be changed
                 using <strong>setlocale()</strong> <info>SORT_NATURAL</info> - compare items as strings using "natural ordering"
                 like <strong>natsort()</strong> <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or
                 <info>SORT_NATURAL</info> to sort strings case-insensitively
                 
                 <info>SORT_REGULAR</info> - compare items normally; the details are described in the comparison
                 operators section
                 
                 <info>SORT_NUMERIC</info> - compare items numerically
                 
                 <info>SORT_STRING</info> - compare items as strings
                 
                 <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale. It uses
                 the locale, which can be changed using <strong>setlocale()</strong>
                 
                 <info>SORT_NATURAL</info> - compare items as strings using "natural ordering" like <strong>natsort()</strong>
                 
                 <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or <info>SORT_NATURAL</info> to
                 sort strings case-insensitively

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

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


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

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  The input array.
  <info>int</info>    <strong>$flags</strong>  The optional second parameter <strong>$flags</strong> may be used to modify the sorting behavior
                 using these values:
                 
                 Sorting type flags: <info>SORT_REGULAR</info> - compare items normally; the details are
                 described in the comparison operators section<info>SORT_NUMERIC</info> - compare items
                 numerically<info>SORT_STRING</info> - compare items as strings<info>SORT_LOCALE_STRING</info> - compare items
                 as strings, based on the current locale. It uses the locale, which can be changed
                 using <strong>setlocale()</strong> <info>SORT_NATURAL</info> - compare items as strings using "natural ordering"
                 like <strong>natsort()</strong> <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or
                 <info>SORT_NATURAL</info> to sort strings case-insensitively
                 
                 <info>SORT_REGULAR</info> - compare items normally; the details are described in the comparison
                 operators section
                 
                 <info>SORT_NUMERIC</info> - compare items numerically
                 
                 <info>SORT_STRING</info> - compare items as strings
                 
                 <info>SORT_LOCALE_STRING</info> - compare items as strings, based on the current locale. It uses
                 the locale, which can be changed using <strong>setlocale()</strong>
                 
                 <info>SORT_NATURAL</info> - compare items as strings using "natural ordering" like <strong>natsort()</strong>
                 
                 <info>SORT_FLAG_CASE</info> - can be combined (bitwise OR) with <info>SORT_STRING</info> or <info>SORT_NATURAL</info> to
                 sort strings case-insensitively

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

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


id: lcfirst
type: function
doc:
<comment>Description:</comment>
  Make a string's first character lowercase
  
  Returns a string with the first character of <strong>$string</strong> lowercased if that character is an ASCII
  character in the range <return>"A"</return> (0x41) to <return>"Z"</return> (0x5a).

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

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

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


id: lcg_value
type: function
doc:
<comment>Description:</comment>
  Combined linear congruential generator
  
  <strong>lcg_value()</strong> returns a pseudo random number in the range of (0, 1).  The function combines two CGs
  with periods of 2^31 - 85 and 2^31 - 249. The period of this function is equal to the product of
  both primes.
  
  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.
  
  Scaling the return value to a different interval using multiplication or addition (a so-called
  affine transformation) might result in a bias in the resulting value as floats are not equally
  dense across the number line. As not all values can be exactly represented by a float, the result
  of the affine transformation might also result in values outside of the requested interval.
  
  Use Random\Randomizer::getFloat to generate a random float within an arbitrary interval. Use
  Random\Randomizer::getInt to generate a random integer within an arbitrary interval.

<comment>Return:</comment>
  <info>float</info>  A pseudo random float value between 0.0 and 1.0, inclusive.

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


id: lchgrp
type: function
doc:
<comment>Description:</comment>
  Changes group ownership of symlink
  
  Attempts to change the group of the symlink <strong>$filename</strong> to <strong>$group</strong>.
  
  Only the superuser may change the group of a symlink arbitrarily; other users may change the group
  of a symlink to any group of which that user is a member.

<comment>Param:</comment>
  <info>string</info>      <strong>$filename</strong>  Path to the symlink.
  <info>string|int</info>  <strong>$group</strong>     The group specified by name or number.

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

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


id: lchown
type: function
doc:
<comment>Description:</comment>
  Changes user ownership of symlink
  
  Attempts to change the owner of the symlink <strong>$filename</strong> to user <strong>$user</strong>.
  
  Only the superuser may change the owner of a symlink.

<comment>Param:</comment>
  <info>string</info>      <strong>$filename</strong>  Path to the file.
  <info>string|int</info>  <strong>$user</strong>      User name or number.

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

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


id: ldap_8859_to_t61
type: function
doc:
<comment>Description:</comment>
  Translate 8859 characters to t61 characters
  
  Translate <return>ISO-8859</return> characters to <return>t61</return> characters.
  
  This function is useful if you have to talk to a legacy  <return>LDAPv2</return> server.

<comment>Param:</comment>
  <info>string</info>  <strong>$value</strong>  The text to be translated.

<comment>Return:</comment>
  <info>string|false</info>  Return the <return>t61</return> translation of <strong>$value</strong>,  or <info>false</info> on failure.

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


id: ldap_add
type: function
doc:
<comment>Description:</comment>
  Add entries to LDAP directory
  
  Add entries in the LDAP directory.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>        The distinguished name of an LDAP entity.
  <info>array</info>            <strong>$entry</strong>     An array that specifies the information about the entry. The values in
                              the entries are indexed by individual attributes. In case of multiple
                              values for an attribute, they are indexed using integers starting with
                              0.  ]]>
  <info>array|null</info>       <strong>$controls</strong>  Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_add_ext()</strong>
   * <strong>ldap_delete()</strong>


id: ldap_add_ext
type: function
doc:
<comment>Description:</comment>
  Add entries to LDAP directory
  
  Does the same thing as <strong>ldap_add()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ldap_add()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_bind
type: function
doc:
<comment>Description:</comment>
  Bind to LDAP directory
  
  Binds to the LDAP directory with specified RDN and password.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string|null</info>      <strong>$dn</strong>        
  <info>string|null</info>      <strong>$password</strong>  

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

<comment>See Also:</comment>
   * <strong>ldap_bind_ext()</strong>
   * <strong>ldap_unbind()</strong>


id: ldap_bind_ext
type: function
doc:
<comment>Description:</comment>
  Bind to LDAP directory
  
  Does the same thing as <strong>ldap_bind()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ldap_bind()</strong>
   * <strong>ldap_parse_result()</strong>


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


id: ldap_compare
type: function
doc:
<comment>Description:</comment>
  Compare value of attribute found in entry specified with DN
  
  Compare <strong>$value</strong> of <strong>$attribute</strong> with value of same attribute in an LDAP directory entry.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>       An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>         The distinguished name of an LDAP entity.
  <info>string</info>           <strong>$attribute</strong>  The attribute name.
  <info>string</info>           <strong>$value</strong>      The compared value.
  <info>array|null</info>       <strong>$controls</strong>   Array of LDAP Controls to send with the request.

<comment>Return:</comment>
  <info>bool|int</info>  Returns <info>true</info> if <strong>$value</strong> matches otherwise returns <info>false</info>. Returns -1 on error.


id: ldap_connect
type: function
doc:
<comment>Description:</comment>
  Connect to an LDAP server
  
  As of PHP 8.3.0, the following signature is deprecated.
  
  Creates an <class>LDAP\Connection</class> connection and checks whether the given <strong>$uri</strong> is plausible.
  
  This function does not open a connection. It checks whether the given parameters are plausible and
  can be used to open a connection as soon as one is needed.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$uri</strong>   A full LDAP URI of the form <return>ldap://hostname:port</return> or <return>ldaps://hostname:port</return> for
                      SSL encryption.
                      
                      You can also provide multiple LDAP-URIs separated by a space as one string
                      
                      Note that <return>hostname:port</return> is not a supported LDAP URI as the schema is missing.
  <info>string|null</info>  <strong>$host</strong>  The hostname to connect to.
  <info>int</info>          <strong>$port</strong>  The port to connect to.

<comment>Return:</comment>
  <info>LDAP\Connection|false</info>  Returns an <class>LDAP\Connection</class> instance when the provided LDAP URI seems
                         plausible. It's a syntactic check of the provided parameter but the
                         server(s) will not be contacted! If the syntactic check fails it returns
                         <info>false</info>. <strong>ldap_connect()</strong> will otherwise return a <class>LDAP\Connection</class> instance as
                         it does not actually connect but just initializes the connecting
                         parameters.  The actual connect happens with the next calls to ldap_*
                         functions, usually with <strong>ldap_bind()</strong>.
                         
                         If no argument is specified then the <class>LDAP\Connection</class> instance of the
                         already opened connection will be returned.

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


id: ldap_connect_wallet
type: function
doc:
<comment>Description:</comment>
  Connect to an LDAP server
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$uri</strong>        
  <info>string</info>       <strong>$wallet</strong>     
  <info>string</info>       <strong>$password</strong>   
  <info>int</info>          <strong>$auth_mode</strong>  

<comment>Return:</comment>
  <info>LDAP\Connection|false</info>  

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


id: ldap_control_paged_result
type: function
doc:
<comment>Description:</comment>
  Send LDAP pagination control
  
  Enable LDAP pagination by sending the pagination control (page size, cookie...).

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>        An LDAP resource, returned by <strong>ldap_connect()</strong>.
  <info>int</info>       <strong>$pagesize</strong>    The number of entries by page.
  <info>bool</info>      <strong>$iscritical</strong>  Indicates whether the pagination is critical or not.  If true and if the
                         server doesn't support pagination, the search will return no result.
  <info>string</info>    <strong>$cookie</strong>      An opaque structure sent by the server
                         (<strong>ldap_control_paged_result_response()</strong>).

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

<comment>See Also:</comment>
   * <strong>ldap_control_paged_result_response()</strong>
   * RFC2696 : LDAP Control Extension for Simple
    Paged Results Manipulation


id: ldap_control_paged_result_response
type: function
doc:
<comment>Description:</comment>
  Retrieve the LDAP pagination cookie
  
  Retrieve the pagination information send by the server.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>       An LDAP resource, returned by <strong>ldap_connect()</strong>.
  <info>resource</info>  <strong>$result</strong>     
  <info>string</info>    <strong>$cookie</strong>     An opaque structure sent by the server.
  <info>int</info>       <strong>$estimated</strong>  The estimated number of entries to retrieve.

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

<comment>See Also:</comment>
   * <strong>ldap_control_paged_result()</strong>
   * RFC2696 : LDAP Control Extension for Simple
    Paged Results Manipulation


id: ldap_count_entries
type: function
doc:
<comment>Description:</comment>
  Count the number of entries in a search
  
  Returns the number of entries stored in the result of previous search operations.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>    An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\Result</info>      <strong>$result</strong>  An <class>LDAP\Result</class> instance, returned by <strong>ldap_list()</strong> or <strong>ldap_search()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns number of entries in the result, or <info>false</info> on failure.


id: ldap_count_references
type: function
doc:
<comment>Description:</comment>
  Counts the number of references in a search result
  
  Counts the number of references in a search result.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>    An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\Result</info>      <strong>$result</strong>  An <class>LDAP\Result</class> instance, returned by <strong>ldap_list()</strong> or <strong>ldap_search()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the number of references in a search result.

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


id: ldap_delete
type: function
doc:
<comment>Description:</comment>
  Delete an entry from a directory
  
  Deletes a particular entry in LDAP directory.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>        The distinguished name of an LDAP entity.
  <info>array|null</info>       <strong>$controls</strong>  Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_delete_ext()</strong>
   * <strong>ldap_add()</strong>


id: ldap_delete_ext
type: function
doc:
<comment>Description:</comment>
  Delete an entry from a directory
  
  Does the same thing as <strong>ldap_delete()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ldap_delete()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_dn2ufn
type: function
doc:
<comment>Description:</comment>
  Convert DN to User Friendly Naming format
  
  Turns the specified <strong>$dn</strong>, into a more user-friendly form, stripping off type names.

<comment>Param:</comment>
  <info>string</info>  <strong>$dn</strong>  The distinguished name of an LDAP entity.

<comment>Return:</comment>
  <info>string|false</info>  Returns the user friendly name,  or <info>false</info> on failure.


id: ldap_err2str
type: function
doc:
<comment>Description:</comment>
  Convert LDAP error number into string error message
  
  Returns the string error message explaining the error number <strong>$errno</strong>. While LDAP errno numbers are
  standardized, different libraries return different or even localized textual error messages. Never
  check for a specific error message text, but always use an error number to check.

<comment>Param:</comment>
  <info>int</info>  <strong>$errno</strong>  The error number.

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

<comment>See Also:</comment>
   * <strong>ldap_errno()</strong>
   * <strong>ldap_error()</strong>


id: ldap_errno
type: function
doc:
<comment>Description:</comment>
  Return the LDAP error number of the last LDAP command
  
  Returns the standardized error number returned by the last LDAP command. This number can be
  converted into a textual error message using <strong>ldap_err2str()</strong>.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.

<comment>Return:</comment>
  <info>int</info>  Return the LDAP error number of the last LDAP command for this link.

<comment>See Also:</comment>
   * <strong>ldap_err2str()</strong>
   * <strong>ldap_error()</strong>


id: ldap_error
type: function
doc:
<comment>Description:</comment>
  Return the LDAP error message of the last LDAP command
  
  Returns the string error message explaining the error generated by the last LDAP command for the
  given <strong>$ldap</strong>. While LDAP errno numbers are standardized, different libraries return different or
  even localized textual error messages. Never check for a specific error message text, but always
  use an error number to check.
  
  Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with
  <return>@</return> (at) characters to suppress warning output, the errors generated will also show up in your HTML
  output.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.

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

<comment>See Also:</comment>
   * <strong>ldap_err2str()</strong>
   * <strong>ldap_errno()</strong>


id: ldap_escape
type: function
doc:
<comment>Description:</comment>
  Escape a string for use in an LDAP filter or DN
  
  Escapes <strong>$value</strong> for use in the context implied by <strong>$flags</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$value</strong>   The value to escape.
  <info>string</info>  <strong>$ignore</strong>  Characters to ignore when escaping.
  <info>int</info>     <strong>$flags</strong>   The context the escaped string will be used in: <info>LDAP_ESCAPE_FILTER</info> for filters to
                   be used with <strong>ldap_search()</strong>, or <info>LDAP_ESCAPE_DN</info> for DNs. If neither flag is passed,
                   all chars are escaped.

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


id: ldap_exop
type: function
doc:
<comment>Description:</comment>
  Performs an extended operation
  
  Performs an extended operation on the specified <strong>$ldap</strong> with <strong>$request_oid</strong> the OID of the operation
  and <strong>$request_data</strong> the data.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>           An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$request_oid</strong>    The extended operation request OID. You may use one of
                                   <info>LDAP_EXOP_START_TLS</info>, <info>LDAP_EXOP_MODIFY_PASSWD</info>, <info>LDAP_EXOP_REFRESH</info>,
                                   <info>LDAP_EXOP_WHO_AM_I</info>, <info>LDAP_EXOP_TURN</info>, or a string with the OID of
                                   the operation you want to send.
  <info>string</info>           <strong>$request_data</strong>   The extended operation request data. May be NULL for some
                                   operations like <info>LDAP_EXOP_WHO_AM_I</info>, may also need to be BER
                                   encoded.
  <info>array</info>            <strong>$controls</strong>       Array of LDAP Controls to send with the request.
  <info>string</info>           <strong>$response_data</strong>  Will be filled with the extended operation response data if
                                   provided. If not provided you may use ldap_parse_exop on the
                                   result object later to get this data.
  <info>string</info>           <strong>$response_oid</strong>   Will be filled with the response OID if provided, usually equal
                                   to the request OID.

<comment>Return:</comment>
  <info>mixed</info>  When used with <strong>$response_data</strong>, returns <info>true</info> on success or <info>false</info> on error. When used without
         <strong>$response_data</strong>, returns a result identifier or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>ldap_parse_result()</strong>
   * <strong>ldap_parse_exop()</strong>
   * <strong>ldap_exop_whoami()</strong>
   * <strong>ldap_exop_refresh()</strong>
   * <strong>ldap_exop_passwd()</strong>


id: ldap_exop_passwd
type: function
doc:
<comment>Description:</comment>
  PASSWD extended operation helper
  
  Performs a PASSWD extended operation.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>          An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$user</strong>          dn of the user to change the password of.
  <info>string</info>           <strong>$old_password</strong>  The old password of this user. May be ommited depending of server
                                  configuration.
  <info>string</info>           <strong>$new_password</strong>  The new password for this user. May be omitted or empty to have a
                                  generated password.
  <info>array</info>            <strong>$controls</strong>      If provided, a password policy request control is send with the
                                  request and this is filled with an array of LDAP Controls returned
                                  with the request.

<comment>Return:</comment>
  <info>string|bool</info>  Returns the generated password if <strong>$new_password</strong> is empty or omitted. Otherwise
               returns <info>true</info> on success and <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ldap_exop()</strong>
   * <strong>ldap_parse_exop()</strong>


id: ldap_exop_refresh
type: function
doc:
<comment>Description:</comment>
  Refresh extended operation helper
  
  Performs a Refresh extended operation and returns the data.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>    dn of the entry to refresh.
  <info>int</info>              <strong>$ttl</strong>   Time in seconds (between 1 and 31557600) that the client requests that the
                          entry exists in the directory before being automatically removed.

<comment>Return:</comment>
  <info>int|false</info>  From RFC: The responseTtl field is the time in seconds which the server chooses to have
             as the time-to-live field for that entry.  It must not be any smaller than that which
             the client requested, and it may be larger. However, to allow servers to maintain a
             relatively accurate directory, and to prevent clients from abusing the dynamic
             extensions, servers are permitted to shorten a client-requested time-to-live value,
             down to a minimum of 86400 seconds (one day).
              <info>false</info> will be returned on error.

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


id: ldap_exop_sync
type: function
doc:
<comment>Description:</comment>
  Performs an extended operation
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>           An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$request_oid</strong>    
  <info>string</info>           <strong>$request_data</strong>   
  <info>array</info>            <strong>$controls</strong>       
  <info>string</info>           <strong>$response_data</strong>  
  <info>string</info>           <strong>$response_oid</strong>   

<comment>Return:</comment>
  <info>LDAP\Result|bool</info>  

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


id: ldap_exop_whoami
type: function
doc:
<comment>Description:</comment>
  WHOAMI extended operation helper
  
  Performs a WHOAMI extended operation and returns the data.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.

<comment>Return:</comment>
  <info>string|false</info>  The data returned by the server, or <info>false</info> on error.

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


id: ldap_explode_dn
type: function
doc:
<comment>Description:</comment>
  Splits DN into its component parts
  
  Splits the DN returned by <strong>ldap_get_dn()</strong> and breaks it up into its component parts. Each part is
  known as Relative Distinguished Name, or RDN.

<comment>Param:</comment>
  <info>string</info>  <strong>$dn</strong>           The distinguished name of an LDAP entity.
  <info>int</info>     <strong>$with_attrib</strong>  Used to request if the RDNs are returned with only values or their
                        attributes as well.  To get RDNs with the attributes (i.e. in
                        attribute=value format) set <strong>$with_attrib</strong> to 0 and to get only values set it
                        to 1.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of all DN components,  or <info>false</info> on failure. The first element in the
               array has <return>count</return> key and represents the number of returned values, next elements are
               numerically indexed DN components.


id: ldap_first_attribute
type: function
doc:
<comment>Description:</comment>
  Return first attribute
  
  Gets the first attribute in the given entry. Remaining attributes are retrieved by calling
  <strong>ldap_next_attribute()</strong> successively.
  
  Similar to reading entries, attributes are also read one by one from a particular entry.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  An <class>LDAP\ResultEntry</class> instance.

<comment>Return:</comment>
  <info>string|false</info>  Returns the first attribute in the entry on success and <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>ldap_next_attribute()</strong>
   * <strong>ldap_get_attributes()</strong>


id: ldap_first_entry
type: function
doc:
<comment>Description:</comment>
  Return first result id
  
  Returns the entry identifier for first entry in the result. This entry identifier is then supplied
  to <strong>ldap_next_entry()</strong> routine to get successive entries from the result.
  
  Entries in the LDAP result are read sequentially using the <strong>ldap_first_entry()</strong> and
  <strong>ldap_next_entry()</strong> functions.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>    An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\Result</info>      <strong>$result</strong>  An <class>LDAP\Result</class> instance, returned by <strong>ldap_list()</strong> or <strong>ldap_search()</strong>.

<comment>Return:</comment>
  <info>LDAP\ResultEntry|false</info>  Returns an <class>LDAP\ResultEntry</class> instance, or <info>false</info> on failure.

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


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

<comment>Return:</comment>
  <info>LDAP\ResultEntry|false</info>  


id: ldap_free_result
type: function
doc:
<comment>Description:</comment>
  Free result memory
  
  Frees up the memory allocated internally to store the result. All result memory will be
  automatically freed when the script terminates.
  
  Typically all the memory allocated for the LDAP result gets freed at the end of the script. In
  case the script is making successive searches which return large result sets, <strong>ldap_free_result()</strong>
  could be called to keep the runtime memory usage by the script low.

<comment>Param:</comment>
  <info>LDAP\Result</info>  <strong>$result</strong>  An <class>LDAP\Result</class> instance, returned by <strong>ldap_list()</strong> or <strong>ldap_search()</strong>.

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


id: ldap_get_attributes
type: function
doc:
<comment>Description:</comment>
  Get attributes from a search result entry
  
  Reads attributes and values from an entry in the search result.
  
  Having located a specific entry in the directory, you can find out what information is held for
  that entry by using this call. You would use this call for an application which "browses"
  directory entries and/or where you do not know the structure of the directory entries. In many
  applications you will be searching for a specific attribute such as an email address or a surname,
  and won't care what other data is held.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  An <class>LDAP\ResultEntry</class> instance.

<comment>Return:</comment>
  <info>array</info>  Returns a complete entry information in a multi-dimensional array.

<comment>See Also:</comment>
   * <strong>ldap_first_attribute()</strong>
   * <strong>ldap_next_attribute()</strong>


id: ldap_get_dn
type: function
doc:
<comment>Description:</comment>
  Get the DN of a result entry
  
  Finds out the DN of an entry in the result.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  An <class>LDAP\ResultEntry</class> instance.

<comment>Return:</comment>
  <info>string|false</info>  Returns the DN of the result entry and <info>false</info> on error.


id: ldap_get_entries
type: function
doc:
<comment>Description:</comment>
  Get all result entries
  
  Reads multiple entries from the given result, and then reading the attributes and multiple values.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>    An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\Result</info>      <strong>$result</strong>  An <class>LDAP\Result</class> instance, returned by <strong>ldap_list()</strong> or <strong>ldap_search()</strong>.

<comment>Return:</comment>
  <info>array|false</info>  Returns a complete result information in a multi-dimensional array on success, or
               <info>false</info> on failure.
               
               The structure of the array is as follows. The attribute index is converted to
               lowercase. (Attributes are case-insensitive for directory servers, but not when used
               as array indices.)

<comment>See Also:</comment>
   * <strong>ldap_first_entry()</strong>
   * <strong>ldap_next_entry()</strong>


id: ldap_get_option
type: function
doc:
<comment>Description:</comment>
  Get the current value for given option
  
  Sets <strong>$value</strong> to the value of the specified option.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>    An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>int</info>               <strong>$option</strong>  The parameter <strong>$option</strong> can be one of:
                             OptionTypesince<info>LDAP_OPT_DEREF</info><info>int</info><info>LDAP_OPT_SIZELIMIT</info><info>int</info><info>LDAP_OPT_TIMELIMIT</info><info>int</info><info>LDAP_OPT_NETWORK_TIMEOUT</info><info>int</info><info>LDAP_OPT_PROTOCOL_VERSION</info><info>int</info><info>LDAP_OPT_ERROR_NUMBER</info><info>int</info><info>LDAP_OPT_DIAGNOSTIC_MESSAGE</info><info>string</info><info>LDAP_OPT_REFERRALS</info><info>int</info><info>LDAP_OPT_RESTART</info><info>int</info><info>LDAP_OPT_HOST_NAME</info><info>string</info><info>LDAP_OPT_ERROR_STRING</info><info>string</info><info>LDAP_OPT_MATCHED_DN</info><info>string</info><info>LDAP_OPT_SERVER_CONTROLS</info><info>array</info><info>LDAP_OPT_CLIENT_CONTROLS</info><info>array</info><info>LDAP_OPT_X_KEEPALIVE_IDLE</info><info>int</info>7.1<info>LDAP_OPT_X_KEEPALIVE_PROBES</info><info>int</info>7.1<info>LDAP_OPT_X_KEEPALIVE_INTERVAL</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CACERTDIR</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_CACERTFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_CERTFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_CIPHER_SUITE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_CRLCHECK</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CRL_NONE</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CRL_PEER</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CRL_ALL</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_CRLFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_DHFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_KEYFILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_PACKAGE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_PROTOCOL_MIN</info><info>int</info>7.1<info>LDAP_OPT_X_TLS_RANDOM_FILE</info><info>string</info>7.1<info>LDAP_OPT_X_TLS_REQUIRE_CERT</info><info>int</info>
  <info>array|string|int</info>  <strong>$value</strong>   This will be set to the option value.

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

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


id: ldap_get_values
type: function
doc:
<comment>Description:</comment>
  Get all values from a result entry
  
  Reads all the values of the attribute in the entry in the result.
  
  This call needs a <strong>$entry</strong>, so needs to be preceded by one of the ldap search calls and one of the
  calls to get an individual entry.
  
  You application will either be hard coded to look for certain attributes (such as "surname" or
  "mail") or you will have to use the <strong>ldap_get_attributes()</strong> call to work out what attributes exist
  for a given entry.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>       An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>      An <class>LDAP\ResultEntry</class> instance.
  <info>string</info>            <strong>$attribute</strong>  

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of values for the attribute on success and <info>false</info> on error. The
               number of values can be found by indexing "count" in the resultant array. Individual
               values are accessed by integer index in the array.  The first index is 0.
               
               LDAP allows more than one entry for an attribute, so it can, for example, store a
               number of email addresses for one person's directory entry all labeled with the
               attribute "mail"  return_value["count"] = number of values for attribute
               return_value[0] = first value of attribute return_value[i] = ith value of attribute

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


id: ldap_get_values_len
type: function
doc:
<comment>Description:</comment>
  Get all binary values from a result entry
  
  Reads all the values of the attribute in the entry in the result.
  
  This function is used exactly like <strong>ldap_get_values()</strong> except that it handles binary data and not
  string data.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>       An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>      An <class>LDAP\ResultEntry</class> instance.
  <info>string</info>            <strong>$attribute</strong>  

<comment>Return:</comment>
  <info>array|false</info>  Returns an array of values for the attribute on success and <info>false</info> on error.
               Individual values are accessed by integer index in the array. The first index is 0.
               The number of values can be found by indexing "count" in the resultant array.

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


id: ldap_list
type: function
doc:
<comment>Description:</comment>
  Single-level search
  
  Performs the search for a specified <strong>$filter</strong> on the directory with the scope <info>LDAP_SCOPE_ONELEVEL</info>.
  
  <info>LDAP_SCOPE_ONELEVEL</info> means that the search should only return information that is at the level
  immediately below the <strong>$base</strong> given in the call. (Equivalent to typing "ls" and getting a list of
  files and folders in the current working directory.)
  
  It is also possible to perform parallel searches. In this case, the first argument should be an
  array of
  <class>LDAP\Connection</class> instances, rather than a single one.
  If the searches should not all use the same base DN and filter, an array of base DNs and/or an
  array of filters can be passed as arguments instead.
  These arrays must be of the same size as the <class>LDAP\Connection</class> instances array,
  since the first entries of the arrays are used for one search, the second entries are used for
  another, and so on.
  When doing parallel searches an array of <class>LDAP\Result</class> instances is returned, except in case of
  error, when the return value will be <info>false</info>.

<comment>Param:</comment>
  <info>LDAP\Connection|array</info>  <strong>$ldap</strong>             An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>array|string</info>           <strong>$base</strong>             The base DN for the directory.
  <info>array|string</info>           <strong>$filter</strong>           
  <info>array</info>                  <strong>$attributes</strong>       An array of the required attributes, e.g. array("mail",
                                           "sn", "cn"). Note that the "dn" is always returned
                                           irrespective of which attributes types are requested.
                                           
                                           Using this parameter is much more efficient than the
                                           default action (which is to return all attributes and
                                           their associated values). The use of this parameter
                                           should therefore be considered good practice.
  <info>int</info>                    <strong>$attributes_only</strong>  Should be set to 1 if only attribute types are wanted. If
                                           set to 0 both attributes types and attribute values are
                                           fetched which is the default behaviour.
  <info>int</info>                    <strong>$sizelimit</strong>        Enables you to limit the count of entries fetched.
                                           Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           sizelimit. You can set it lower though.
                                           
                                           Some directory server hosts will be configured to return
                                           no more than a preset number of entries. If this occurs,
                                           the server will indicate that it has only returned a
                                           partial results set. This also occurs if you use this
                                           parameter to limit the count of fetched entries.
  <info>int</info>                    <strong>$timelimit</strong>        Sets the number of seconds how long is spend on the
                                           search. Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           timelimit. You can set it lower though.
  <info>int</info>                    <strong>$deref</strong>            Specifies how aliases should be handled during the
                                           search. It can be one of the following: <info>LDAP_DEREF_NEVER</info>
                                           - (default) aliases are never dereferenced.
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search. <info>LDAP_DEREF_FINDING</info> - aliases should be
                                           dereferenced when locating the base object but not during
                                           the search. <info>LDAP_DEREF_ALWAYS</info> - aliases should be
                                           dereferenced always.
                                           
                                           <info>LDAP_DEREF_NEVER</info> - (default) aliases are never
                                           dereferenced.
                                           
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search.
                                           
                                           <info>LDAP_DEREF_FINDING</info> - aliases should be dereferenced when
                                           locating the base object but not during the search.
                                           
                                           <info>LDAP_DEREF_ALWAYS</info> - aliases should be dereferenced
                                           always.
  <info>array|null</info>             <strong>$controls</strong>         Array of LDAP Controls to send with the request.

<comment>Return:</comment>
  <info>LDAP\Result|array|false</info>  Returns an <class>LDAP\Result</class> instance, an array of <class>LDAP\Result</class> instances, or
                           <info>false</info> on failure.

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


id: ldap_mod_add
type: function
doc:
<comment>Description:</comment>
  Add attribute values to current attributes
  
  Adds one or more attribute values to the specified <strong>$dn</strong>. To add a whole new object see <strong>ldap_add()</strong>
  function.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>        The distinguished name of an LDAP entity.
  <info>array</info>            <strong>$entry</strong>     An associative array listing the attirbute values to add. If an
                              attribute was not existing yet it will be added. If an attribute is
                              existing you can only add values to it if it supports multiple values.
  <info>array|null</info>       <strong>$controls</strong>  Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_mod_add_ext()</strong>
   * <strong>ldap_mod_del()</strong>
   * <strong>ldap_mod_replace()</strong>
   * <strong>ldap_modify_batch()</strong>


id: ldap_mod_add_ext
type: function
doc:
<comment>Description:</comment>
  Add attribute values to current attributes
  
  Does the same thing as <strong>ldap_mod_add()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ldap_mod_add()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_mod_del
type: function
doc:
<comment>Description:</comment>
  Delete attribute values from current attributes
  
  Removes one or more attribute values from the specified <strong>$dn</strong>. Object deletions are done by the
  <strong>ldap_delete()</strong> function.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>        The distinguished name of an LDAP entity.
  <info>array</info>            <strong>$entry</strong>     
  <info>array|null</info>       <strong>$controls</strong>  Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_mod_del_ext()</strong>
   * <strong>ldap_mod_add()</strong>
   * <strong>ldap_mod_replace()</strong>
   * <strong>ldap_modify_batch()</strong>


id: ldap_mod_del_ext
type: function
doc:
<comment>Description:</comment>
  Delete attribute values from current attributes
  
  Does the same thing as <strong>ldap_mod_del()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ldap_mod_del()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_mod_replace
type: function
doc:
<comment>Description:</comment>
  Replace attribute values with new ones
  
  Replaces one or more attributes from the specified <strong>$dn</strong>. It may also add or remove attributes.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>      An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>        The distinguished name of an LDAP entity.
  <info>array</info>            <strong>$entry</strong>     An associative array listing the attributes to replace. Sending an
                              empty array as value will remove the attribute, while sending an
                              attribute not existing yet on this entry will add it.
  <info>array|null</info>       <strong>$controls</strong>  Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_mod_replace_ext()</strong>
   * <strong>ldap_mod_del()</strong>
   * <strong>ldap_mod_add()</strong>
   * <strong>ldap_modify_batch()</strong>


id: ldap_mod_replace_ext
type: function
doc:
<comment>Description:</comment>
  Replace attribute values with new ones
  
  Does the same thing as <strong>ldap_mod_replace()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ldap_mod_replace()</strong>
   * <strong>ldap_parse_result()</strong>


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

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


id: ldap_modify_batch
type: function
doc:
<comment>Description:</comment>
  Batch and execute modifications on an LDAP entry
  
  Modifies an existing entry in the LDAP directory. Allows detailed specification of the
  modifications to perform.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>                An LDAP resource, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>                  The distinguished name of an LDAP entity.
  <info>array</info>            <strong>$modifications_info</strong>  An array that specifies the modifications to make. Each
                                        entry in this array is an associative array with two or
                                        three keys: <return>attrib</return> maps to the name of the attribute to
                                        modify, <return>modtype</return> maps to the type of modification to perform,
                                        and (depending on the type of modification) <return>values</return> maps to
                                        an array of attribute values relevant to the modification.
                                        
                                        Possible values for <return>modtype</return> include: <info>LDAP_MODIFY_BATCH_ADD</info>
                                        Each value specified through <return>values</return> is added (as an
                                        additional value) to the attribute named by <return>attrib</return>.
                                        <info>LDAP_MODIFY_BATCH_REMOVE</info> Each value specified through <return>values</return>
                                        is removed from the attribute named by <return>attrib</return>. Any value of
                                        the attribute not contained in the <return>values</return> array will remain
                                        untouched. <info>LDAP_MODIFY_BATCH_REMOVE_ALL</info> All values are
                                        removed from the attribute named by <return>attrib</return>. A <return>values</return> entry
                                        must not be provided. <info>LDAP_MODIFY_BATCH_REPLACE</info> All current
                                        values of the attribute named by <return>attrib</return> are replaced with
                                        the values specified through <return>values</return>.
                                        
                                        Each value specified through <return>values</return> is added (as an
                                        additional value) to the attribute named by <return>attrib</return>.
                                        
                                        Each value specified through <return>values</return> is removed from the
                                        attribute named by <return>attrib</return>. Any value of the attribute not
                                        contained in the <return>values</return> array will remain untouched.
                                        
                                        All values are removed from the attribute named by <return>attrib</return>. A
                                        <return>values</return> entry must not be provided.
                                        
                                        All current values of the attribute named by <return>attrib</return> are
                                        replaced with the values specified through <return>values</return>.
                                        
                                        Note that any value for <return>attrib</return> must be a string, any value
                                        for <return>values</return> must be an array of strings, and any value for
                                        <return>modtype</return> must be one of the LDAP_MODIFY_BATCH_* constants
                                        listed above.
  <info>array|null</info>       <strong>$controls</strong>            Array of LDAP Controls to send with the request.

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


id: ldap_next_attribute
type: function
doc:
<comment>Description:</comment>
  Get the next attribute in result
  
  Retrieves the attributes in an entry. The first call to <strong>ldap_next_attribute()</strong> is made with the
  <strong>$entry</strong> returned from <strong>ldap_first_attribute()</strong>.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  An <class>LDAP\ResultEntry</class> instance.

<comment>Return:</comment>
  <info>string|false</info>  Returns the next attribute in an entry on success and <info>false</info> on error.

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


id: ldap_next_entry
type: function
doc:
<comment>Description:</comment>
  Get next result entry
  
  Retrieve the entries stored in the result. Successive calls to the <strong>ldap_next_entry()</strong> return
  entries one by one till there are no more entries. The first call to <strong>ldap_next_entry()</strong> is made
  after the call to <strong>ldap_first_entry()</strong> with the <strong>$entry</strong> as returned from the <strong>ldap_first_entry()</strong>.

<comment>Param:</comment>
  <info>LDAP\Connection</info>   <strong>$ldap</strong>   An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\ResultEntry</info>  <strong>$entry</strong>  An <class>LDAP\ResultEntry</class> instance.

<comment>Return:</comment>
  <info>LDAP\ResultEntry|false</info>  Returns an <class>LDAP\ResultEntry</class> instance for the next entry in the result
                          whose entries are being read starting with <strong>ldap_first_entry()</strong>. If there
                          are no more entries in the result then it returns <info>false</info>.

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


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

<comment>Return:</comment>
  <info>LDAP\ResultEntry|false</info>  


id: ldap_parse_exop
type: function
doc:
<comment>Description:</comment>
  Parse result object from an LDAP extended operation
  
  Parse LDAP extended operation data from result object <strong>$result</strong>

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>           An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\Result</info>      <strong>$result</strong>         An <class>LDAP\Result</class> instance, returned by <strong>ldap_list()</strong> or
                                   <strong>ldap_search()</strong>.
  <info>string</info>           <strong>$response_data</strong>  Will be filled by the response data.
  <info>string</info>           <strong>$response_oid</strong>   Will be filled by the response OID.

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

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


id: ldap_parse_reference
type: function
doc:
<comment>Description:</comment>
  Extract information from reference entry
  
  This function is
  currently not documented; only its argument list is available.

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


id: ldap_parse_result
type: function
doc:
<comment>Description:</comment>
  Extract information from result
  
  Parses an LDAP search result.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>           An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>LDAP\Result</info>      <strong>$result</strong>         An <class>LDAP\Result</class> instance, returned by <strong>ldap_list()</strong> or
                                   <strong>ldap_search()</strong>.
  <info>int</info>              <strong>$error_code</strong>     A reference to a variable that will be set to the LDAP error code
                                   in the result, or <return>0</return> if no error occurred.
  <info>string</info>           <strong>$matched_dn</strong>     A reference to a variable that will be set to a matched DN if one
                                   was recognised within the request, otherwise it will be set to
                                   <info>null</info>.
  <info>string</info>           <strong>$error_message</strong>  A reference to a variable that will be set to the LDAP error
                                   message in the result, or an empty string if no error occurred.
  <info>array</info>            <strong>$referrals</strong>      A reference to a variable that will be set to an <info>array</info> set to all
                                   of the referral strings in the result, or an empty array if no
                                   referrals were returned.
  <info>array</info>            <strong>$controls</strong>       An <info>array</info> of LDAP Controls which have been sent with the response.

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


id: ldap_read
type: function
doc:
<comment>Description:</comment>
  Read an entry
  
  Performs the search for a specified <strong>$filter</strong> on the directory with the scope <info>LDAP_SCOPE_BASE</info>. So it
  is equivalent to reading an entry from the directory.
  
  It is also possible to perform parallel searches. In this case, the first argument should be an
  array of
  <class>LDAP\Connection</class> instances, rather than a single one.
  If the searches should not all use the same base DN and filter, an array of base DNs and/or an
  array of filters can be passed as arguments instead.
  These arrays must be of the same size as the <class>LDAP\Connection</class> instances array,
  since the first entries of the arrays are used for one search, the second entries are used for
  another, and so on.
  When doing parallel searches an array of <class>LDAP\Result</class> instances is returned, except in case of
  error, when the return value will be <info>false</info>.

<comment>Param:</comment>
  <info>LDAP\Connection|array</info>  <strong>$ldap</strong>             An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>array|string</info>           <strong>$base</strong>             The base DN for the directory.
  <info>array|string</info>           <strong>$filter</strong>           An empty filter is not allowed. If you want to retrieve
                                           absolutely all information for this entry, use a filter
                                           of <return>objectClass=*</return>. If you know which entry types are used
                                           on the directory server, you might use an appropriate
                                           filter such as <return>objectClass=inetOrgPerson</return>.
  <info>array</info>                  <strong>$attributes</strong>       An array of the required attributes, e.g. array("mail",
                                           "sn", "cn"). Note that the "dn" is always returned
                                           irrespective of which attributes types are requested.
                                           
                                           Using this parameter is much more efficient than the
                                           default action (which is to return all attributes and
                                           their associated values). The use of this parameter
                                           should therefore be considered good practice.
  <info>int</info>                    <strong>$attributes_only</strong>  Should be set to 1 if only attribute types are wanted. If
                                           set to 0 both attributes types and attribute values are
                                           fetched which is the default behaviour.
  <info>int</info>                    <strong>$sizelimit</strong>        Enables you to limit the count of entries fetched.
                                           Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           sizelimit. You can set it lower though.
                                           
                                           Some directory server hosts will be configured to return
                                           no more than a preset number of entries. If this occurs,
                                           the server will indicate that it has only returned a
                                           partial results set. This also occurs if you use this
                                           parameter to limit the count of fetched entries.
  <info>int</info>                    <strong>$timelimit</strong>        Sets the number of seconds how long is spend on the
                                           search. Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           timelimit. You can set it lower though.
  <info>int</info>                    <strong>$deref</strong>            Specifies how aliases should be handled during the
                                           search. It can be one of the following: <info>LDAP_DEREF_NEVER</info>
                                           - (default) aliases are never dereferenced.
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search. <info>LDAP_DEREF_FINDING</info> - aliases should be
                                           dereferenced when locating the base object but not during
                                           the search. <info>LDAP_DEREF_ALWAYS</info> - aliases should be
                                           dereferenced always.
                                           
                                           <info>LDAP_DEREF_NEVER</info> - (default) aliases are never
                                           dereferenced.
                                           
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search.
                                           
                                           <info>LDAP_DEREF_FINDING</info> - aliases should be dereferenced when
                                           locating the base object but not during the search.
                                           
                                           <info>LDAP_DEREF_ALWAYS</info> - aliases should be dereferenced
                                           always.
  <info>array|null</info>             <strong>$controls</strong>         Array of LDAP Controls to send with the request.

<comment>Return:</comment>
  <info>LDAP\Result|array|false</info>  Returns an <class>LDAP\Result</class> instance, an array of <class>LDAP\Result</class> instances, or
                           <info>false</info> on failure.


id: ldap_rename
type: function
doc:
<comment>Description:</comment>
  Modify the name of an entry
  
  The entry specified by <strong>$dn</strong> is renamed/moved.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>            An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>string</info>           <strong>$dn</strong>              The distinguished name of an LDAP entity.
  <info>string</info>           <strong>$new_rdn</strong>         The new RDN.
  <info>string</info>           <strong>$new_parent</strong>      The new parent/superior entry.
  <info>bool</info>             <strong>$delete_old_rdn</strong>  If <info>true</info> the old RDN value(s) is removed, else the old RDN
                                    value(s) is retained as non-distinguished values of the entry.
  <info>array|null</info>       <strong>$controls</strong>        Array of LDAP Controls to send with the request.

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

<comment>See Also:</comment>
   * <strong>ldap_rename_ext()</strong>
   * <strong>ldap_modify()</strong>


id: ldap_rename_ext
type: function
doc:
<comment>Description:</comment>
  Modify the name of an entry
  
  Does the same thing as <strong>ldap_rename()</strong> but returns an <class>LDAP\Result</class> instance to be parsed with
  <strong>ldap_parse_result()</strong>.

<comment>Return:</comment>
  <info>LDAP\Result|false</info>  Returns an <class>LDAP\Result</class> instance, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>ldap_rename()</strong>
   * <strong>ldap_parse_result()</strong>


id: ldap_sasl_bind
type: function
doc:
<comment>Description:</comment>
  Bind to LDAP directory using SASL
  
  This function is
  currently not documented; only its argument list is available.

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


id: ldap_search
type: function
doc:
<comment>Description:</comment>
  Search LDAP tree
  
  Performs the search for a specified filter on the directory with the scope of <info>LDAP_SCOPE_SUBTREE</info>.
  This is equivalent to searching the entire directory.
  
  It is also possible to perform parallel searches. In this case, the first argument should be an
  array of
  <class>LDAP\Connection</class> instances, rather than a single one.
  If the searches should not all use the same base DN and filter, an array of base DNs and/or an
  array of filters can be passed as arguments instead.
  These arrays must be of the same size as the <class>LDAP\Connection</class> instances array,
  since the first entries of the arrays are used for one search, the second entries are used for
  another, and so on.
  When doing parallel searches an array of <class>LDAP\Result</class> instances is returned, except in case of
  error, when the return value will be <info>false</info>.

<comment>Param:</comment>
  <info>LDAP\Connection|array</info>  <strong>$ldap</strong>             An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.
  <info>array|string</info>           <strong>$base</strong>             The base DN for the directory.
  <info>array|string</info>           <strong>$filter</strong>           The search filter can be simple or advanced, using
                                           boolean operators in the format described in the LDAP
                                           documentation (see the Netscape Directory SDK or RFC4515
                                           for full information on filters).
  <info>array</info>                  <strong>$attributes</strong>       An array of the required attributes, e.g. <return>array("mail",
                                           "sn", "cn")</return>. Note that the "dn" is always returned
                                           irrespective of which attributes types are requested.
                                           
                                           Using this parameter is much more efficient than the
                                           default action (which is to return all attributes and
                                           their associated values). The use of this parameter
                                           should therefore be considered good practice.
  <info>int</info>                    <strong>$attributes_only</strong>  Should be set to 1 if only attribute types are wanted. If
                                           set to 0 both attributes types and attribute values are
                                           fetched which is the default behaviour.
  <info>int</info>                    <strong>$sizelimit</strong>        Enables you to limit the count of entries fetched.
                                           Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           sizelimit. You can set it lower though.
                                           
                                           Some directory server hosts will be configured to return
                                           no more than a preset number of entries. If this occurs,
                                           the server will indicate that it has only returned a
                                           partial results set. This also occurs if you use this
                                           parameter to limit the count of fetched entries.
  <info>int</info>                    <strong>$timelimit</strong>        Sets the number of seconds how long is spend on the
                                           search. Setting this to 0 means no limit.
                                           
                                           This parameter can NOT override server-side preset
                                           timelimit. You can set it lower though.
  <info>int</info>                    <strong>$deref</strong>            Specifies how aliases should be handled during the
                                           search. It can be one of the following: <info>LDAP_DEREF_NEVER</info>
                                           - (default) aliases are never dereferenced.
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search. <info>LDAP_DEREF_FINDING</info> - aliases should be
                                           dereferenced when locating the base object but not during
                                           the search. <info>LDAP_DEREF_ALWAYS</info> - aliases should be
                                           dereferenced always.
                                           
                                           <info>LDAP_DEREF_NEVER</info> - (default) aliases are never
                                           dereferenced.
                                           
                                           <info>LDAP_DEREF_SEARCHING</info> - aliases should be dereferenced
                                           during the search but not when locating the base object
                                           of the search.
                                           
                                           <info>LDAP_DEREF_FINDING</info> - aliases should be dereferenced when
                                           locating the base object but not during the search.
                                           
                                           <info>LDAP_DEREF_ALWAYS</info> - aliases should be dereferenced
                                           always.
  <info>array|null</info>             <strong>$controls</strong>         Array of LDAP Controls to send with the request.

<comment>Return:</comment>
  <info>LDAP\Result|array|false</info>  Returns an <class>LDAP\Result</class> instance, an array of <class>LDAP\Result</class> instances, or
                           <info>false</info> on failure.


id: ldap_set_option
type: function
doc:
<comment>Description:</comment>
  Set the value of the given option
  
  Sets the value of the specified option to be <strong>$value</strong>.

<comment>Param:</comment>
  <info>LDAP\Connection|null</info>   <strong>$ldap</strong>    Either an <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>, to
                                  set the option for that connection, or <info>null</info> to set the option
                                  globally.
  <info>int</info>                    <strong>$option</strong>  The parameter <strong>$option</strong> can be one of: OptionTypeAvailable
                                  since<info>LDAP_OPT_DEREF</info><info>int</info><info>LDAP_OPT_SIZELIMIT</info><info>int</info><info>LDAP_OPT_TIMELIMIT</info><info>int</info><info>LDAP_OPT_NETWORK_TIMEOUT</info><info>int</info><info>LDAP_OPT_PROTOCOL_VERSION</info><info>int</info><info>LDAP_OPT_ERROR_NUMBER</info><info>int</info><info>LDAP_OPT_REFERRALS</info><info>bool</info><info>LDAP_OPT_RESTART</info><info>bool</info><info>LDAP_OPT_HOST_NAME</info><info>string</info><info>LDAP_OPT_ERROR_STRING</info><info>string</info><info>LDAP_OPT_DIAGNOSTIC_MESSAGE</info><info>string</info><info>LDAP_OPT_MATCHED_DN</info><info>string</info><info>LDAP_OPT_SERVER_CONTROLS</info><info>array</info><info>LDAP_OPT_CLIENT_CONTROLS</info><info>array</info><info>LDAP_OPT_X_KEEPALIVE_IDLE</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_KEEPALIVE_PROBES</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_KEEPALIVE_INTERVAL</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CACERTDIR</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CACERTFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CERTFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CIPHER_SUITE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CRLCHECK</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_CRLFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_DHFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_KEYFILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_PROTOCOL_MIN</info><info>int</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_RANDOM_FILE</info><info>string</info>PHP
                                  7.1.0<info>LDAP_OPT_X_TLS_REQUIRE_CERT</info><info>int</info>PHP 7.0.5
                                  
                                  <info>LDAP_OPT_SERVER_CONTROLS</info> and  <info>LDAP_OPT_CLIENT_CONTROLS</info> require a
                                  list of controls, this means that the value must be an array of
                                  controls. A control consists of an oid identifying the control, an
                                  optional value, and an optional flag for criticality. In PHP a
                                  control is given by an array containing an element with the key
                                  oid and string value, and two optional elements. The optional
                                  elements are key value with string value and key iscritical with
                                  boolean value. iscritical defaults to <info>false</info> if not supplied. See
                                  draft-ietf-ldapext-ldap-c-api-xx.txt for details. See also the
                                  second example below.
  <info>array|string|int|bool</info>  <strong>$value</strong>   The new value for the specified <strong>$option</strong>.

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

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


id: ldap_set_rebind_proc
type: function
doc:
<comment>Description:</comment>
  Set a callback function to do re-binds on referral chasing
  
  This function is
  currently not documented; only its argument list is available.

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


id: ldap_sort
type: function
doc:
<comment>Description:</comment>
  Sort LDAP result entries on the client side
  
  Sort the result of a LDAP search, returned by <strong>ldap_search()</strong>.
  
  As this function sorts the returned values on the client side it is possible that  you might not
  get the expected results in case you reach the <strong>$sizelimit</strong> either of the server or defined within
  <strong>ldap_search()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>        An LDAP resource, returned by <strong>ldap_connect()</strong>.
  <info>resource</info>  <strong>$result</strong>      An search result identifier, returned by <strong>ldap_search()</strong>.
  <info>string</info>    <strong>$sortfilter</strong>  The attribute to use as a key in the sort.

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


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

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


id: ldap_t61_to_8859
type: function
doc:
<comment>Description:</comment>
  Translate t61 characters to 8859 characters
  
  This function is
  currently not documented; only its argument list is available.

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


id: ldap_unbind
type: function
doc:
<comment>Description:</comment>
  Unbind from LDAP directory
  
  Unbinds from the LDAP directory.

<comment>Param:</comment>
  <info>LDAP\Connection</info>  <strong>$ldap</strong>  An <class>LDAP\Connection</class> instance, returned by <strong>ldap_connect()</strong>.

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

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


id: levenshtein
type: function
doc:
<comment>Description:</comment>
  Calculate Levenshtein distance between two strings
  
  The Levenshtein distance is defined as the minimal number of characters you have to replace,
  insert or delete to transform <strong>$string1</strong> into <strong>$string2</strong>. The complexity of the algorithm is <return>O(m*n)</return>,
  where <return>n</return> and <return>m</return> are the length of <strong>$string1</strong> and <strong>$string2</strong> (rather good when compared to
  <strong>similar_text()</strong>, which is <return>O(max(n,m)**3)</return>, but still expensive).
  
  If <strong>$insertion_cost</strong>, <strong>$replacement_cost</strong> and/or <strong>$deletion_cost</strong> are unequal to <return>1</return>, the algorithm adapts
  to choose the cheapest transforms. E.g. if $insertion_cost + $deletion_cost
  \< $replacement_cost, no replacements will be done, but rather inserts and deletions instead.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>           One of the strings being evaluated for Levenshtein distance.
  <info>string</info>  <strong>$string2</strong>           One of the strings being evaluated for Levenshtein distance.
  <info>int</info>     <strong>$insertion_cost</strong>    Defines the cost of insertion.
  <info>int</info>     <strong>$replacement_cost</strong>  Defines the cost of replacement.
  <info>int</info>     <strong>$deletion_cost</strong>     Defines the cost of deletion.

<comment>Return:</comment>
  <info>int</info>  This function returns the Levenshtein-Distance between the two argument strings.

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


id: libXMLError
type: class
doc:
<comment>Description:</comment>
  Contains various information about errors thrown by libxml. The error codes are described within
  the official  xmlError API documentation.


id: libxml_clear_errors
type: function
doc:
<comment>Description:</comment>
  Clear libxml error buffer
    
  
  <strong>libxml_clear_errors()</strong> clears the libxml error buffer.

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

<comment>See Also:</comment>
   * <strong>libxml_get_errors()</strong>
   * <strong>libxml_get_last_error()</strong>


id: libxml_disable_entity_loader
type: function
doc:
<comment>Description:</comment>
  Disable the ability to load external entities
  
  Disable/enable the ability to load external entities. Note that disabling the loading of external
  entities may cause general issues with loading XML documents. However, as of libxml 2.9.0 entity
  substitution is disabled by default, so there is no need to disable the loading of external
  entities, unless there is the need to resolve internal entity references with <info>LIBXML_NOENT</info>.
  Generally, it is preferable to use <strong>libxml_set_external_entity_loader()</strong> to suppress loading of
  external entities.

<comment>Param:</comment>
  <info>bool</info>  <strong>$disable</strong>  Disable (<info>true</info>) or enable (<info>false</info>) libxml extensions (such as ,  and ) to load
                  external entities.

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

<comment>See Also:</comment>
   * <strong>libxml_use_internal_errors()</strong>
   * <strong>libxml_set_external_entity_loader()</strong>
   * The <info>LIBXML_NOENT</info> constant


id: libxml_get_errors
type: function
doc:
<comment>Description:</comment>
  Retrieve array of errors
    
  
  Retrieve array of errors.

<comment>Return:</comment>
  <info>array</info>  Returns an array with <info>LibXMLError</info> objects if there are any errors in the buffer, or an
         empty array otherwise.

<comment>See Also:</comment>
   * <strong>libxml_get_last_error()</strong>
   * <strong>libxml_clear_errors()</strong>


id: libxml_get_external_entity_loader
type: function
doc:
<comment>Description:</comment>
  Get the current external entity loader
  
  Get external entity loader previously installed by <strong>libxml_set_external_entity_loader()</strong>.

<comment>Return:</comment>
  <info>callable|null</info>  The external entity loader previously installed by
                 <strong>libxml_set_external_entity_loader()</strong>. If that function was never called, or if it
                 was called with <info>null</info>, <info>null</info> will be returned.

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


id: libxml_get_last_error
type: function
doc:
<comment>Description:</comment>
  Retrieve last error from libxml
    
  
  Retrieve last error from libxml.

<comment>Return:</comment>
  <info>LibXMLError|false</info>  Returns a <info>LibXMLError</info> object if there is any error in the buffer, <info>false</info>
                     otherwise.

<comment>See Also:</comment>
   * <strong>libxml_get_errors()</strong>
   * <strong>libxml_clear_errors()</strong>


id: libxml_set_external_entity_loader
type: function
doc:
<comment>Description:</comment>
  Changes the default external entity loader
  
  Changes the default external entity loader. This can be used to suppress the expansion of
  arbitrary external entities to avoid XXE attacks, even when <info>LIBXML_NOENT</info> has been set for the
  respective operation, and is usually preferable over calling <strong>libxml_disable_entity_loader()</strong>.

<comment>Param:</comment>
  <info>callable|null</info>  <strong>$resolver_function</strong>  A <info>callable</info> with the following signature:
                                     <info>resource</info><info>string</info><info>null</info></info>resolver<info>string</info><info>null</info></info><strong>$public_id</strong><info>string</info><strong>$system_id</strong><info>array</info><strong>$context</strong>
                                     <strong>$public_id</strong> The public ID. <strong>$system_id</strong> The system ID. <strong>$context</strong> An
                                     array with the four elements <return>"directory"</return>, <return>"intSubName"</return>,
                                     <return>"extSubURI"</return> and <return>"extSubSystem"</return>.  This callable should return a
                                     resource, a <info>string</info> from which a resource can be opened. If <info>null</info>
                                     is returned, the entity reference resolution will fail.
                                     
                                     The public ID.
                                     
                                     The system ID.
                                     
                                     An array with the four elements <return>"directory"</return>, <return>"intSubName"</return>,
                                     <return>"extSubURI"</return> and <return>"extSubSystem"</return>.
  <info>string|null</info>    <strong>$public_id</strong>          The public ID.
  <info>string</info>         <strong>$system_id</strong>          The system ID.
  <info>array</info>          <strong>$context</strong>            An array with the four elements <return>"directory"</return>, <return>"intSubName"</return>,
                                     <return>"extSubURI"</return> and <return>"extSubSystem"</return>.

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

<comment>See Also:</comment>
   * <strong>libxml_disable_entity_loader()</strong>
   * <strong>libxml_get_external_entity_loader()</strong>


id: libxml_set_streams_context
type: function
doc:
<comment>Description:</comment>
  Set the streams context for the next libxml document load or write
    
  
  Sets the streams context for the next libxml document load or write.

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  The stream context resource (created with <strong>stream_context_create()</strong>)

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

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


id: libxml_use_internal_errors
type: function
doc:
<comment>Description:</comment>
  Disable libxml errors and allow user to fetch error information as needed
    
  
  <strong>libxml_use_internal_errors()</strong> allows you to disable standard libxml errors and enable user error
  handling.

<comment>Param:</comment>
  <info>bool|null</info>  <strong>$use_errors</strong>  Enable (<info>true</info>) user error handling or disable (<info>false</info>) user error handling.
                          Disabling will also clear any existing libxml errors.

<comment>Return:</comment>
  <info>bool</info>  This function returns the previous value of <strong>$use_errors</strong>.

<comment>See Also:</comment>
   * <strong>libxml_clear_errors()</strong>
   * <strong>libxml_get_errors()</strong>


id: link
type: function
doc:
<comment>Description:</comment>
  Create a hard link
  
  <strong>link()</strong> creates a hard link.

<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>symlink()</strong>
   * <strong>readlink()</strong>
   * <strong>linkinfo()</strong>
   * <strong>unlink()</strong>


id: linkinfo
type: function
doc:
<comment>Description:</comment>
  Gets information about a link
  
  Gets information about a link.
  
  This function is used to verify if a link (pointed to by <strong>$path</strong>) really exists (using the same
  method as the S_ISLNK macro defined in stat.h).

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  Path to the link.

<comment>Return:</comment>
  <info>int|false</info>  <strong>linkinfo()</strong> returns the <return>st_dev</return> field of the Unix C stat structure returned by the <return>lstat</return>
             system call. Returns a non-negative integer on success, -1 in case the link was not
             found,  or <info>false</info> if an open.base_dir violation occurs.

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


id: list
type: function
doc:
<comment>Description:</comment>
  Assign variables as if they were an array
  
  Like <strong>array()</strong>, this is not really a function, but a language construct. <strong>list()</strong> is used to assign a
  list of variables in one operation. Strings can not be unpacked and <strong>list()</strong> expressions  can not be
  completely empty.
  
  Before PHP 7.1.0, <strong>list()</strong> only worked on numerical arrays and assumes the numerical indices start
  at 0.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$var</strong>   A variable.
  <info>mixed</info>  <strong>$vars</strong>  Further variables.

<comment>Return:</comment>
  <info>array</info>  Returns the assigned array.

<comment>See Also:</comment>
   * <strong>each()</strong>
   * <strong>array()</strong>
   * <strong>extract()</strong>


id: localeconv
type: function
doc:
<comment>Description:</comment>
  Get numeric formatting information
  
  Returns an associative array containing localized numeric and monetary formatting information.

<comment>Return:</comment>
  <info>array</info>  <strong>localeconv()</strong> returns data based upon the current locale as set by <strong>setlocale()</strong>.  The
         associative array that is returned contains the following fields: Array
         elementDescriptiondecimal_pointDecimal point characterthousands_sepThousands
         separatorgroupingArray containing numeric groupingsint_curr_symbolInternational currency
         symbol (i.e. USD)currency_symbolLocal currency symbol (i.e. $)mon_decimal_pointMonetary
         decimal point charactermon_thousands_sepMonetary thousands separatormon_groupingArray
         containing monetary groupingspositive_signSign for positive valuesnegative_signSign for
         negative valuesint_frac_digitsInternational fractional digitsfrac_digitsLocal fractional
         digitsp_cs_precedes<info>true</info> if currency_symbol precedes a positive value, <info>false</info> if it succeeds
         one p_sep_by_space<info>true</info> if a space separates currency_symbol from a positive value, <info>false</info>
         otherwise n_cs_precedes<info>true</info> if currency_symbol precedes a negative value, <info>false</info> if it
         succeeds one n_sep_by_space<info>true</info> if a space separates currency_symbol from a negative value,
         <info>false</info> otherwise p_sign_posn0 - Parentheses surround the quantity and currency_symbol1 - The
         sign string precedes the quantity and currency_symbol2 - The sign string succeeds the
         quantity and currency_symbol3 - The sign string immediately precedes the currency_symbol4 -
         The sign string immediately succeeds the currency_symboln_sign_posn0 - Parentheses surround
         the quantity and currency_symbol1 - The sign string precedes the quantity and
         currency_symbol2 - The sign string succeeds the quantity and currency_symbol3 - The sign
         string immediately precedes the currency_symbol4 - The sign string immediately succeeds the
         currency_symbol
         
         The <return>p_sign_posn</return>, and <return>n_sign_posn</return> contain a string of formatting options. Each number
         representing one of the above listed conditions.
         
         The grouping fields contain arrays that define the way numbers should be grouped. For
         example, the monetary grouping field for the nl_NL locale (in UTF-8 mode with the euro
         sign), would contain a 2 item array with the values 3 and 3. The higher the index in the
         array, the farther left the grouping is. If an array element is equal to <info>CHAR_MAX</info>, no
         further grouping is done. If an array element is equal to 0, the previous element should be
         used.

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


id: localtime
type: function
doc:
<comment>Description:</comment>
  Get the local time
  
  The <strong>localtime()</strong> function returns an array identical to that of the structure returned by the C
  function call.

<comment>Param:</comment>
  <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>.
  <info>bool</info>      <strong>$associative</strong>  Determines whether the function should return a regular, numerically
                          indexed array,  or an associative one.

<comment>Return:</comment>
  <info>array</info>  If <strong>$associative</strong> is set to <info>false</info> or not supplied then  the array is returned as a regular,
         numerically indexed array. If <strong>$associative</strong> is set to <info>true</info> then <strong>localtime()</strong> returns an
         associative array containing the elements of the structure returned by the C function call
         to localtime.  The keys of the associative array are as follows:
         
          "tm_sec" - seconds, <return>0</return> to <return>59</return>  "tm_min" - minutes, <return>0</return> to <return>59</return>  "tm_hour" - hours, <return>0</return> to <return>23</return>
         "tm_mday" - day of the month, <return>1</return> to <return>31</return>  "tm_mon" - month of the year, <return>0</return> (Jan) to <return>11</return> (Dec)
         "tm_year" - years since 1900  "tm_wday" - day of the week, <return>0</return> (Sun) to <return>6</return> (Sat)  "tm_yday" -
         day of the year, <return>0</return> to <return>365</return>  "tm_isdst" - is daylight savings time in effect?  Positive if
         yes, <return>0</return> if not, negative if unknown.
         
         "tm_sec" - seconds, <return>0</return> to <return>59</return>
         
         "tm_min" - minutes, <return>0</return> to <return>59</return>
         
         "tm_hour" - hours, <return>0</return> to <return>23</return>
         
         "tm_mday" - day of the month, <return>1</return> to <return>31</return>
         
         "tm_mon" - month of the year, <return>0</return> (Jan) to <return>11</return> (Dec)
         
         "tm_year" - years since 1900
         
         "tm_wday" - day of the week, <return>0</return> (Sun) to <return>6</return> (Sat)
         
         "tm_yday" - day of the year, <return>0</return> to <return>365</return>
         
         "tm_isdst" - is daylight savings time in effect?
         
         Positive if yes, <return>0</return> if not, negative if unknown.

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


id: log
type: function
doc:
<comment>Description:</comment>
  Natural logarithm
  
  If the optional <strong>$base</strong> parameter is specified,  <strong>log()</strong> returns logbase <strong>$num</strong>, otherwise <strong>log()</strong>
  returns the natural logarithm of <strong>$num</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>   The value to calculate the logarithm for
  <info>float</info>  <strong>$base</strong>  The optional logarithmic base to use  (defaults to 'e' and so to the natural
                logarithm).

<comment>Return:</comment>
  <info>float</info>  The logarithm of <strong>$num</strong> to  <strong>$base</strong>, if given, or the natural logarithm.

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


id: log10
type: function
doc:
<comment>Description:</comment>
  Base-10 logarithm
  
  Returns the base-10 logarithm of <strong>$num</strong>.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The argument to process

<comment>Return:</comment>
  <info>float</info>  The base-10 logarithm of <strong>$num</strong>

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


id: log1p
type: function
doc:
<comment>Description:</comment>
  Returns log(1 + number), computed in a way that is accurate even when
     the value of number is close to zero
    
  
  <strong>log1p()</strong> returns log(1 + <strong>$num</strong>) computed in a way that is accurate even when the value of <strong>$num</strong> is
  close to zero. <strong>log()</strong> might only return log(1) in this case due to lack of precision.

<comment>Param:</comment>
  <info>float</info>  <strong>$num</strong>  The argument to process

<comment>Return:</comment>
  <info>float</info>  log(1 + <strong>$num</strong>)

<comment>See Also:</comment>
   * <strong>expm1()</strong>
   * <strong>log()</strong>
   * <strong>log10()</strong>


id: long2ip
type: function
doc:
<comment>Description:</comment>
  Converts a long integer address into a string in (IPv4) Internet standard dotted format
  
  The function <strong>long2ip()</strong> generates an Internet address in dotted format (i.e.: aaa.bbb.ccc.ddd) from
  the long integer representation.

<comment>Param:</comment>
  <info>int</info>  <strong>$ip</strong>  A proper address representation in long integer.

<comment>Return:</comment>
  <info>string|false</info>  Returns the Internet IP address as a string,  or <info>false</info> on failure.

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


id: lstat
type: function
doc:
<comment>Description:</comment>
  Gives information about a file or symbolic link
  
  Gathers the statistics of the file or symbolic link named by <strong>$filename</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Path to a file or a symbolic link.

<comment>Return:</comment>
  <info>array|false</info>  See the manual page for <strong>stat()</strong> for information on the structure of the array that
               <strong>lstat()</strong> returns. This function is identical to the <strong>stat()</strong> function except that if the
               <strong>$filename</strong> parameter is a symbolic link, the status of the symbolic link is returned,
               not the status of the file pointed to by the symbolic link.
               
               On failure, <info>false</info> is returned.

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


id: ltrim
type: function
doc:
<comment>Description:</comment>
  Strip whitespace (or other characters) from the beginning of a string
  
  Strip whitespace (or other characters) from the beginning of a string.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>      The input string.
  <info>string</info>  <strong>$characters</strong>  You can also specify the characters you want to strip, by means of the
                       <strong>$characters</strong> parameter. Simply list all characters that you want to be
                       stripped. With <return>..</return> you can specify a range of characters.

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

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


id: lzf_compress
type: function
doc:
<comment>Description:</comment>
  LZF compression
    
  
  <strong>lzf_compress()</strong> compresses the given <strong>$data</strong> string using LZF encoding.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The string to compress.

<comment>Return:</comment>
  <info>string</info>  Returns the compressed data or <info>false</info> if an error occurred.

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


id: lzf_decompress
type: function
doc:
<comment>Description:</comment>
  LZF decompression
    
  
  <strong>lzf_compress()</strong> decompresses the given <strong>$data</strong> string containing lzf encoded data.

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

<comment>Return:</comment>
  <info>string</info>  Returns the decompressed data or <info>false</info> if an error occurred.

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


id: lzf_optimized_for
type: function
doc:
<comment>Description:</comment>
  Determines what LZF extension was optimized for
    
  
  Determines what was LZF extension optimized for during compilation.

<comment>Return:</comment>
  <info>int</info>  Returns 1 if LZF was optimized for speed, 0 for compression.


id: mail
type: function
doc:
<comment>Description:</comment>
  Send mail
  
  Sends an email.

<comment>Param:</comment>
  <info>string</info>        <strong>$to</strong>                  Receiver, or receivers of the mail.
                                     
                                     The formatting of this string must comply with RFC 2822. Some
                                     examples are: user@example.comuser@example.com,
                                     anotheruser@example.comUser \<user@example.com&gt;User \<user@example.com&gt;, Another User \<anotheruser@example.com&gt;
  <info>string</info>        <strong>$subject</strong>             Subject of the email to be sent.
                                     
                                     Subject must satisfy RFC 2047.
  <info>string</info>        <strong>$message</strong>             Message to be sent.
                                     
                                     Each line should be separated with a CRLF (\r\n). Lines should
                                     not be larger than 70 characters.
                                     
                                     (Windows only) When PHP is talking to a SMTP server directly,
                                     if a full stop is found on the start of a line, it is removed.
                                     To counter-act this, replace these occurrences with a double
                                     dot.
                                     ]]>
  <info>array|string</info>  <strong>$additional_headers</strong>  <info>String</info> or <info>array</info> to be inserted at the end of the email header.
                                     
                                     This is typically used to add extra headers (From, Cc, and
                                     Bcc). Multiple extra headers should be separated with a CRLF
                                     (\r\n). If outside data are used to compose this header, the
                                     data should be sanitized so that no unwanted headers could be
                                     injected.
                                     
                                     If an <info>array</info> is passed, its keys are the header names and its
                                     values are the respective header values.
                                     
                                     Before PHP 5.4.42 and 5.5.27, repectively, <strong>$additional_headers</strong>
                                     did not have mail header injection protection. Therefore, users
                                     must make sure specified headers are safe and contains headers
                                     only. i.e. Never start mail body by putting multiple newlines.
                                     
                                     When sending mail, the mail must contain a <return>From</return> header. This
                                     can be set with the <strong>$additional_headers</strong> parameter, or a default
                                     can be set in php.ini.
                                     
                                     Failing to do this will result in an error message similar to
                                     <return>Warning: mail(): "sendmail_from" not set in php.ini or custom
                                     "From:" header missing</return>. The <return>From</return> header sets also <return>Return-Path</return>
                                     when sending directly via SMTP (Windows only).
                                     
                                     If messages are not received, try using a LF (\n) only. Some
                                     Unix mail transfer agents (most notably qmail) replace LF by
                                     CRLF automatically (which leads to doubling CR if CRLF is
                                     used). This should be a last resort, as it does not comply with
                                     RFC 2822.
  <info>string</info>        <strong>$additional_params</strong>   The <strong>$additional_params</strong> parameter can be used to pass additional
                                     flags as command line options to the program configured to be
                                     used when sending mail, as defined by the <return>sendmail_path</return>
                                     configuration setting. For example, this can be used to set the
                                     envelope sender address when using sendmail with the <return>-f</return>
                                     sendmail option.
                                     
                                     This parameter is escaped by <strong>escapeshellcmd()</strong> internally to
                                     prevent command execution. <strong>escapeshellcmd()</strong> prevents command
                                     execution, but allows to add additional parameters. For
                                     security reasons, it is recommended for the user to sanitize
                                     this parameter to avoid adding unwanted parameters to the shell
                                     command.
                                     
                                     Since <strong>escapeshellcmd()</strong> is applied automatically, some
                                     characters that are allowed as email addresses by internet RFCs
                                     cannot be used.  <strong>mail()</strong> can not allow such characters, so in
                                     programs where the use of such characters is required,
                                     alternative means of sending emails (such as using a framework
                                     or a library) is recommended.
                                     
                                     The user that the webserver runs as should be added as a
                                     trusted user to the sendmail configuration to prevent a
                                     'X-Warning' header from being added to the message when the
                                     envelope sender (-f) is set using this method. For sendmail
                                     users, this file is /etc/mail/trusted-users.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the mail was successfully accepted for delivery, <info>false</info> otherwise.
        
        It is important to note that just because the mail was accepted for delivery, it does NOT
        mean the mail will actually reach the intended destination.

<comment>See Also:</comment>
   * <strong>mb_send_mail()</strong>
   * <strong>imap_mail()</strong>
   * PEAR::Mail
   * PEAR::Mail_Mime


id: mailparse_determine_best_xfer_encoding
type: function
doc:
<comment>Description:</comment>
  Gets the best way of encoding
  
  Figures out the best way of encoding the content read from the given file pointer.

<comment>Param:</comment>
  <info>resource</info>  <strong>$fp</strong>  A valid file pointer, which must be seek-able.

<comment>Return:</comment>
  <info>string</info>  Returns one of the character encodings supported by the mbstring module.


id: mailparse_msg_create
type: function
doc:
<comment>Description:</comment>
  Create a mime mail resource
  
  Create a <return>MIME</return> mail resource.

<comment>Return:</comment>
  <info>resource</info>  Returns a handle that can be used to parse a message.

<comment>See Also:</comment>
   * <strong>mailparse_msg_free()</strong>
   * <strong>mailparse_msg_parse_file()</strong>


id: mailparse_msg_extract_part
type: function
doc:
<comment>Description:</comment>
  Extracts/decodes a message section
    
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>      A valid <return>MIME</return> resource.
  <info>string</info>    <strong>$msgbody</strong>       
  <info>callable</info>  <strong>$callbackfunc</strong>  

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

<comment>See Also:</comment>
   * <strong>mailparse_msg_extract_part_file()</strong>
   * <strong>mailparse_msg_extract_whole_part_file()</strong>


id: mailparse_msg_extract_part_file
type: function
doc:
<comment>Description:</comment>
  Extracts/decodes a message section
  
  Extracts/decodes a message section from the supplied filename.
  
  The contents of the section will be decoded according to their transfer encoding - base64,
  quoted-printable and uuencoded text are supported.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>      A valid <return>MIME</return> resource, created with <strong>mailparse_msg_create()</strong>.
  <info>mixed</info>     <strong>$filename</strong>      Can be a file name or a valid stream resource.
  <info>callable</info>  <strong>$callbackfunc</strong>  If set, this must be either a valid callback that will be passed the
                           extracted section, or <info>null</info> to make this function return the extracted
                           section.
                           
                           If not specified, the contents will be sent to "stdout".

<comment>Return:</comment>
  <info>string</info>  If <strong>$callbackfunc</strong> is not <info>null</info> returns <info>true</info> on success.
          
          If <strong>$callbackfunc</strong> is set to <info>null</info>, returns the extracted section as a string.
          
          Returns <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mailparse_msg_extract_part()</strong>
   * <strong>mailparse_msg_extract_whole_part_file()</strong>


id: mailparse_msg_extract_whole_part_file
type: function
doc:
<comment>Description:</comment>
  Extracts a message section including headers without decoding the transfer encoding
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>      A valid <return>MIME</return> resource.
  <info>string</info>    <strong>$filename</strong>      
  <info>callable</info>  <strong>$callbackfunc</strong>  

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

<comment>See Also:</comment>
   * <strong>mailparse_msg_extract_part()</strong>
   * <strong>mailparse_msg_extract_part_file()</strong>


id: mailparse_msg_free
type: function
doc:
<comment>Description:</comment>
  Frees a MIME resource
  
  Frees a <return>MIME</return> resource.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>  A valid <return>MIME</return> resource allocated by <strong>mailparse_msg_create()</strong> or
                       <strong>mailparse_msg_parse_file()</strong>.

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

<comment>See Also:</comment>
   * <strong>mailparse_msg_create()</strong>
   * <strong>mailparse_msg_parse_file()</strong>


id: mailparse_msg_get_part
type: function
doc:
<comment>Description:</comment>
  Returns a handle on a given section in a mimemessage
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>     A valid <return>MIME</return> resource.
  <info>string</info>    <strong>$mimesection</strong>  

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


id: mailparse_msg_get_part_data
type: function
doc:
<comment>Description:</comment>
  Returns an associative array of info about the message
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>  A valid <return>MIME</return> resource.

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


id: mailparse_msg_get_structure
type: function
doc:
<comment>Description:</comment>
  Returns an array of mime section names in the supplied message
  
  This function is
  currently not documented; only its argument list is available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>  A valid <return>MIME</return> resource.

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


id: mailparse_msg_parse
type: function
doc:
<comment>Description:</comment>
  Incrementally parse data into buffer
  
  Incrementally parse data into the supplied mime mail resource.
  
  This function allow you to stream portions of a file at a time, rather than read and parse the
  whole thing.

<comment>Param:</comment>
  <info>resource</info>  <strong>$mimemail</strong>  A valid <return>MIME</return> resource.
  <info>string</info>    <strong>$data</strong>      The final chunk of <strong>$data</strong> is supposed to end with a newline (<return>CRLF</return>); otherwise
                       the last line of the message will not be parsed.

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


id: mailparse_msg_parse_file
type: function
doc:
<comment>Description:</comment>
  Parses a file
  
  Parses a file. This is the optimal way of parsing a mail file that you have on disk.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  Path to the file holding the message. The file is opened and streamed through
                     the parser.
                     
                     The message contained in <strong>$filename</strong> is supposed to end with a newline (<return>CRLF</return>);
                     otherwise the last line of the message will not be parsed.

<comment>Return:</comment>
  <info>resource</info>  Returns a <return>MIME</return> resource representing the structure, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mailparse_msg_free()</strong>
   * <strong>mailparse_msg_create()</strong>


id: mailparse_rfc822_parse_addresses
type: function
doc:
<comment>Description:</comment>
  Parse RFC 822 compliant addresses
  
  Parses a RFC 822 compliant recipient list, such as that found in the <return>To:</return> header.

<comment>Param:</comment>
  <info>string</info>  <strong>$addresses</strong>  A string containing addresses, like in: <return>Wez Furlong \<wez@example.com&gt;, doe@example.com</return>
                      
                      This string must not include the header name.

<comment>Return:</comment>
  <info>array</info>  Returns an array of associative arrays with the following keys for each recipient: <return>display</return>
         The recipient name, for display purpose. If this part is not set for a recipient, this key
         will hold the same value as  <return>address</return>. <return>address</return>The email address<return>is_group</return><info>true</info> if the recipient
         is a newsgroup, <info>false</info> otherwise.


id: mailparse_stream_encode
type: function
doc:
<comment>Description:</comment>
  Streams data from source file pointer, apply encoding and write to destfp 
    
  
  Streams data from the source file pointer, apply  <strong>$encoding</strong> and write to the destination file
  pointer.

<comment>Param:</comment>
  <info>resource</info>  <strong>$sourcefp</strong>  A valid file handle. The file is streamed through the parser.
  <info>resource</info>  <strong>$destfp</strong>    The destination file handle in which the encoded data will be written.
  <info>string</info>    <strong>$encoding</strong>  One of the character encodings supported by the mbstring module.

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


id: mailparse_uudecode_all
type: function
doc:
<comment>Description:</comment>
  Scans the data from fp and extract each embedded uuencoded file
    
  
  Scans the data from the given file pointer and extract each embedded uuencoded file into a
  temporary file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$fp</strong>  A valid file pointer.

<comment>Return:</comment>
  <info>array</info>  Returns an array of associative arrays listing filename information. <return>filename</return>Path to the
         temporary file name created<return>origfilename</return>The original filename, for uuencoded parts only The
         first filename entry is the message body. The next entries are the decoded uuencoded files.


id: max
type: function
doc:
<comment>Description:</comment>
  Find highest value
  
  Alternative signature (not supported with named arguments):
  
  If the first and only parameter is an array, <strong>max()</strong> returns the highest value in that array. If at
  least two parameters are  provided, <strong>max()</strong> returns the biggest of these values.
  
  Values of different types will be compared using the  standard comparison rules. For instance, a
  non-numeric <info>string</info> will be compared to an <info>int</info> as though it were <return>0</return>, but multiple non-numeric <info>string</info>
  values will be compared alphanumerically. The actual value returned will be of the original type
  with no conversion applied.
  
  Be careful when passing arguments of different types because <strong>max()</strong> can produce unpredictable
  results.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>        Any comparable value.
  <info>mixed</info>  <strong>$values</strong>       Any comparable values.
  <info>array</info>  <strong>$value_array</strong>  An array containing the values.

<comment>Return:</comment>
  <info>mixed</info>  <strong>max()</strong> returns the parameter value considered "highest" according to standard comparisons.
         If multiple values of different types evaluate as equal (e.g. <return>0</return> and <return>'abc'</return>) the first
         provided to the function will be returned.

<comment>See Also:</comment>
   * <strong>min()</strong>
   * <strong>count()</strong>


id: mb_check_encoding
type: function
doc:
<comment>Description:</comment>
  Check if strings are valid for the specified encoding
  
  Checks if the specified byte stream is valid for the specified encoding. If <strong>$value</strong> is of type
  <info>array</info>, all keys and values are validated recursively. It is useful to prevent so-called "Invalid
  Encoding Attack".

<comment>Param:</comment>
  <info>array|string|null</info>  <strong>$value</strong>     The byte stream or <info>array</info> to check. If it is omitted, this function
                                checks all the input from the beginning of the request.
                                
                                As of PHP 8.1.0, omitting this parameter or passing <info>null</info> is
                                deprecated.
  <info>string|null</info>        <strong>$encoding</strong>  The expected encoding.

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


id: mb_chr
type: function
doc:
<comment>Description:</comment>
  Return character by Unicode code point value
  
  Returns a string containing the character specified by the Unicode code point value, encoded in
  the specified encoding.
  
  This function complements <strong>mb_ord()</strong>.

<comment>Param:</comment>
  <info>int</info>          <strong>$codepoint</strong>  A Unicode codepoint value, e.g. <return>128024</return> for U+1F418 ELEPHANT
  <info>string|null</info>  <strong>$encoding</strong>   The <strong>$encoding</strong>
                           parameter is the character encoding. If it is omitted or <info>null</info>, the
                           internal character
                           encoding value will be used.

<comment>Return:</comment>
  <info>string|false</info>  A string containing the requested character, if it can be represented in the
                specified encoding  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_ord()</strong>
   * <strong>IntlChar::ord()</strong>
   * <strong>chr()</strong>


id: mb_convert_case
type: function
doc:
<comment>Description:</comment>
  Perform case folding on a string
  
  Performs case folding on a <info>string</info>, converted in the way specified by <strong>$mode</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being converted.
  <info>int</info>          <strong>$mode</strong>      The mode of the conversion. It can be one of  <info>MB_CASE_UPPER</info>,
                          <info>MB_CASE_LOWER</info>,  <info>MB_CASE_TITLE</info>, <info>MB_CASE_FOLD</info>, <info>MB_CASE_UPPER_SIMPLE</info>,
                          <info>MB_CASE_LOWER_SIMPLE</info>, <info>MB_CASE_TITLE_SIMPLE</info>, <info>MB_CASE_FOLD_SIMPLE</info>.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>string</info>  A case folded version of <strong>$string</strong> converted in the way specified by <strong>$mode</strong>.

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


id: mb_convert_encoding
type: function
doc:
<comment>Description:</comment>
  Convert a string from one character encoding to another
  
  Converts <strong>$string</strong> from <strong>$from_encoding</strong>, or the current internal encoding, to <strong>$to_encoding</strong>. If
  <strong>$string</strong> is an <info>array</info>, all its <info>string</info> values will be converted recursively.

<comment>Param:</comment>
  <info>array|string</info>       <strong>$string</strong>         The <info>string</info> or <info>array</info> to be converted.
  <info>string</info>             <strong>$to_encoding</strong>    The desired encoding of the result.
  <info>array|string|null</info>  <strong>$from_encoding</strong>  The current encoding used to interpret <strong>$string</strong>. Multiple
                                     encodings may be specified as an <info>array</info> or comma separated list,
                                     in which case the correct encoding will be guessed using the
                                     same algorithm as <strong>mb_detect_encoding()</strong>.
                                     
                                     If <strong>$from_encoding</strong> is omitted or <info>null</info>, the
                                     mbstring.internal_encoding setting will be used if set,
                                     otherwise the default_charset setting.
                                     
                                     See supported encodings for valid values of <strong>$to_encoding</strong> and
                                     <strong>$from_encoding</strong>.

<comment>Return:</comment>
  <info>array|string|false</info>  The encoded <info>string</info> or <info>array</info> on success,  or <info>false</info> on failure.

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


id: mb_convert_kana
type: function
doc:
<comment>Description:</comment>
  Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
  
  Performs a "han-kaku" - "zen-kaku" conversion for <info>string</info> <strong>$string</strong>.  This function is only useful
  for Japanese.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being converted.
  <info>string</info>       <strong>$mode</strong>      The conversion option.
                          
                          Specify with a combination of following options. Applicable Conversion
                          OptionsOptionMeaning<return>r</return> Convert "zen-kaku" alphabets to "han-kaku" <return>R</return> Convert
                          "han-kaku" alphabets to "zen-kaku" <return>n</return> Convert "zen-kaku" numbers to
                          "han-kaku" <return>N</return> Convert "han-kaku" numbers to "zen-kaku" <return>a</return> Convert "zen-kaku"
                          alphabets and numbers to "han-kaku" <return>A</return> Convert "han-kaku" alphabets and
                          numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021
                          - U+007E excluding U+0022, U+0027, U+005C, U+007E) <return>s</return> Convert "zen-kaku"
                          space to "han-kaku" (U+3000 -&gt; U+0020) <return>S</return> Convert "han-kaku" space to
                          "zen-kaku" (U+0020 -&gt; U+3000) <return>k</return> Convert "zen-kaku kata-kana" to
                          "han-kaku kata-kana" <return>K</return> Convert "han-kaku kata-kana" to "zen-kaku
                          kata-kana" <return>h</return> Convert "zen-kaku hira-gana" to "han-kaku kata-kana" <return>H</return>
                          Convert "han-kaku kata-kana" to "zen-kaku hira-gana" <return>c</return> Convert "zen-kaku
                          kata-kana" to "zen-kaku hira-gana" <return>C</return> Convert "zen-kaku hira-gana" to
                          "zen-kaku kata-kana" <return>V</return> Collapse voiced sound notation and convert them
                          into a character. Use with "K","H"
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

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


id: mb_convert_variables
type: function
doc:
<comment>Description:</comment>
  Convert character code in variable(s)
  
  Converts  character encoding of variables <strong>$var</strong> and <strong>$vars</strong> in encoding <strong>$from_encoding</strong> to encoding
  <strong>$to_encoding</strong>.
  
  <strong>mb_convert_variables()</strong> join strings in Array or Object to detect encoding, since encoding
  detection tends to fail for short strings. Therefore, it is impossible to mix encoding in single
  array or object.

<comment>Param:</comment>
  <info>string</info>        <strong>$to_encoding</strong>    The encoding that the <info>string</info> is being converted to.
  <info>array|string</info>  <strong>$from_encoding</strong>  <strong>$from_encoding</strong> is specified as an <info>array</info>  or comma separated <info>string</info>,
                                it tries to detect encoding from <strong>$from-coding</strong>. When <strong>$from_encoding</strong>
                                is omitted, <return>detect_order</return> is used.
  <info>mixed</info>         <strong>$var</strong>            <strong>$var</strong> is the reference to the variable being converted. String, Array
                                and Object are accepted. <strong>mb_convert_variables()</strong> assumes all
                                parameters have the same encoding.
  <info>mixed</info>         <strong>$vars</strong>           Additional <strong>$var</strong>s.

<comment>Return:</comment>
  <info>string|false</info>  The character encoding before conversion for success,  or <info>false</info> for failure.


id: mb_decode_mimeheader
type: function
doc:
<comment>Description:</comment>
  Decode string in MIME header field
  
  Decodes encoded-word <info>string</info> <strong>$string</strong> in MIME header.

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

<comment>Return:</comment>
  <info>string</info>  The decoded <info>string</info> in internal character encoding.

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


id: mb_decode_numericentity
type: function
doc:
<comment>Description:</comment>
  Decode HTML numeric string reference to character
  
  Convert numeric string reference of <info>string</info> <strong>$string</strong> in a specified block to character.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being decoded.
  <info>array</info>        <strong>$map</strong>       <strong>$map</strong> is an <info>array</info> that specifies  the code area to convert.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.
  <info></info>             <strong>$is_hex</strong>    This parameter is not used.

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

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


id: mb_detect_encoding
type: function
doc:
<comment>Description:</comment>
  Detect character encoding
  
  Detects the most likely character encoding for <info>string</info> <strong>$string</strong> from an ordered list of candidates.
  
  Automatic detection of the intended character encoding can never be entirely reliable; without
  some additional information, it is similar to decoding an encrypted string without the key. It is
  always preferable to use an indication of character encoding stored or transmitted with the data,
  such as a "Content-Type" HTTP header.
  
  This function is most useful with multibyte encodings, where not all sequences of bytes form a
  valid string. If the input string contains such a sequence, that encoding will be rejected, and
  the next encoding checked.

<comment>Param:</comment>
  <info>string</info>             <strong>$string</strong>     The <info>string</info> being inspected.
  <info>array|string|null</info>  <strong>$encodings</strong>  A list of character encodings to try, in order. The list may be
                                 specified as an array of strings, or a single string separated by
                                 commas.
                                 
                                 If <strong>$encodings</strong> is omitted or <info>null</info>, the current detect_order (set
                                 with the  mbstring.detect_order configuration option, or
                                 <strong>mb_detect_order()</strong> function) will be used.
  <info>bool</info>               <strong>$strict</strong>     Controls the behaviour when <strong>$string</strong> is not valid in any of the
                                 listed <strong>$encodings</strong>. If <strong>$strict</strong> is set to <info>false</info>, the closest matching
                                 encoding will be returned; if <strong>$strict</strong> is set to <info>true</info>, <info>false</info> will be
                                 returned.
                                 
                                 The default value for <strong>$strict</strong> can be set with the
                                 mbstring.strict_detection configuration option.

<comment>Return:</comment>
  <info>string|false</info>  The detected character encoding, or <info>false</info> if the string is not valid in any of the
                listed encodings.

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


id: mb_detect_order
type: function
doc:
<comment>Description:</comment>
  Set/Get character encoding detection order
  
  Sets the automatic character encoding detection order to <strong>$encoding</strong>.

<comment>Param:</comment>
  <info>array|string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong> is an <info>array</info> or  comma separated list of character
                                encoding. See supported encodings.
                                
                                If <strong>$encoding</strong> is omitted or <info>null</info>, it returns the current character
                                encoding detection order as array.
                                
                                This setting affects <strong>mb_detect_encoding()</strong> and <strong>mb_send_mail()</strong>.
                                
                                <return>mbstring</return> currently implements the following encoding detection
                                filters. If there is an invalid byte sequence for the following
                                encodings, encoding detection will fail.
                                
                                <return>UTF-8</return>, <return>UTF-7</return>, <return>ASCII</return>, <return>EUC-JP</return>,<return>SJIS</return>, <return>eucJP-win</return>, <return>SJIS-win</return>, <return>JIS</return>,
                                <return>ISO-2022-JP</return>
                                
                                For <return>ISO-8859-*</return>, <return>mbstring</return> always detects as <return>ISO-8859-*</return>.
                                
                                For <return>UTF-16</return>, <return>UTF-32</return>, <return>UCS2</return> and <return>UCS4</return>, encoding detection will fail
                                always.

<comment>Return:</comment>
  <info>array|bool</info>  When setting the encoding detection order, <info>true</info> is returned on success or <info>false</info> on
              failure.
              
              When getting the encoding detection order, an ordered array of the encodings is
              returned.

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_http_input()</strong>
   * <strong>mb_http_output()</strong>
   * <strong>mb_send_mail()</strong>


id: mb_encode_mimeheader
type: function
doc:
<comment>Description:</comment>
  Encode string for MIME header
  
  Encodes a given <info>string</info> <strong>$string</strong> by the MIME header encoding scheme.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>             The <info>string</info> being encoded. Its encoding should be same as
                                   <strong>mb_internal_encoding()</strong>.
  <info>string|null</info>  <strong>$charset</strong>            <strong>$charset</strong> specifies the name of the character set in which <strong>$string</strong>
                                   is represented in. The default value is determined by the current
                                   NLS setting (<return>mbstring.language</return>).
  <info>string|null</info>  <strong>$transfer_encoding</strong>  <strong>$transfer_encoding</strong> specifies the scheme of MIME encoding. It
                                   should be either <return>"B"</return> (Base64) or <return>"Q"</return> (Quoted-Printable). Falls
                                   back to <return>"B"</return> if not given.
  <info>string</info>       <strong>$newline</strong>            <strong>$newline</strong> specifies the EOL (end-of-line) marker with which
                                   <strong>mb_encode_mimeheader()</strong> performs line-folding (a RFC term, the act
                                   of breaking a line longer than a certain length into multiple
                                   lines. The length is currently hard-coded to 74 characters).
                                   Falls back to <return>"\r\n"</return> (CRLF) if not given.
  <info>int</info>          <strong>$indent</strong>             Indentation of the first line (number of characters in the header
                                   before <strong>$string</strong>).

<comment>Return:</comment>
  <info>string</info>  A converted version of the <info>string</info> represented in ASCII.

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


id: mb_encode_numericentity
type: function
doc:
<comment>Description:</comment>
  Encode character to HTML numeric string reference
  
  Converts specified character codes in <info>string</info> <strong>$string</strong> from character code to HTML numeric character
  reference.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being encoded.
  <info>array</info>        <strong>$map</strong>       <strong>$map</strong> is array specifies code area to convert.
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.
  <info>bool</info>         <strong>$hex</strong>       Whether the returned entity reference should be in hexadecimal notation
                          (otherwise it is in decimal notation).

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

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


id: mb_encoding_aliases
type: function
doc:
<comment>Description:</comment>
  Get aliases of a known encoding type
  
  Returns an array of aliases for a known <strong>$encoding</strong> type.

<comment>Param:</comment>
  <info>string</info>  <strong>$encoding</strong>  The encoding type being checked, for aliases.

<comment>Return:</comment>
  <info>array</info>  Returns a numerically indexed array of encoding aliases.

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


id: mb_ereg
type: function
doc:
<comment>Description:</comment>
  Regular expression match with multibyte support
  
  Executes the regular expression match with multibyte support.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The search pattern.
  <info>string</info>  <strong>$string</strong>   The search <info>string</info>.
  <info>array</info>   <strong>$matches</strong>  If matches are found for parenthesized substrings of <strong>$pattern</strong> and the function
                    is called with the third argument <strong>$matches</strong>, the matches will be stored in the
                    elements of the array <strong>$matches</strong>. If no matches are found, <strong>$matches</strong> is set to an
                    empty array.
                    
                    $matches[1] will contain the substring which starts at the first left
                    parenthesis; $matches[2] will contain the substring starting at the second, and
                    so on. $matches[0] will contain a copy of the complete string matched.

<comment>Return:</comment>
  <info>bool</info>  Returns whether <strong>$pattern</strong> matches <strong>$string</strong>.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_eregi()</strong>


id: mb_ereg_match
type: function
doc:
<comment>Description:</comment>
  Regular expression match for multibyte string
  
  A regular expression match for a multibyte string <strong>$pattern</strong> is only matched at the beginning of
  <strong>$string</strong>.
  
  <strong>$pattern</strong> is only matched at the beginning of <strong>$string</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$pattern</strong>  The regular expression pattern.
  <info>string</info>       <strong>$string</strong>   The <info>string</info> being evaluated.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$string</strong> matches the regular expression <strong>$pattern</strong>, <info>false</info> if not.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg()</strong>


id: mb_ereg_replace
type: function
doc:
<comment>Description:</comment>
  Replace regular expression with multibyte support
  
  Scans <strong>$string</strong> for matches to <strong>$pattern</strong>, then replaces the matched text with <strong>$replacement</strong>

<comment>Param:</comment>
  <info>string</info>       <strong>$pattern</strong>      The regular expression pattern.
                             
                             Multibyte characters may be used in <strong>$pattern</strong>.
  <info>string</info>       <strong>$replacement</strong>  The replacement text.
  <info>string</info>       <strong>$string</strong>       The <info>string</info> being checked.
  <info>string|null</info>  <strong>$options</strong>      The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>string|false|null</info>  The resultant <info>string</info> on success, or <info>false</info> on error. If <strong>$string</strong> is not valid for
                     the current encoding, <info>null</info> is returned.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_eregi_replace()</strong>


id: mb_ereg_replace_callback
type: function
doc:
<comment>Description:</comment>
  Perform a regular expression search and replace with multibyte support using a callback
    
  
  Scans <strong>$string</strong> for matches to <strong>$pattern</strong>, then replaces the matched text with the output of <strong>$callback</strong>
  function.
  
  The behavior of this function is almost identical to <strong>mb_ereg_replace()</strong>,  except for the fact that
  instead of <strong>$replacement</strong> parameter, one should specify a <strong>$callback</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$pattern</strong>   The regular expression pattern.
                          
                          Multibyte characters may be used in <strong>$pattern</strong>.
  <info>callable</info>     <strong>$callback</strong>  A callback that will be called and passed an array of matched elements in
                          the  <strong>$subject</strong> string. The callback should return the replacement string.
                          
                          You'll often need the <strong>$callback</strong> function for a <strong>mb_ereg_replace_callback()</strong>
                          in just one place. In this case you can use an anonymous function to
                          declare the callback within the call to <strong>mb_ereg_replace_callback()</strong>. By
                          doing it this way you have all information for the call in one place and
                          do not clutter the function namespace with a callback function's name not
                          used anywhere else.
  <info>string</info>       <strong>$string</strong>    The <info>string</info> being checked.
  <info>string|null</info>  <strong>$options</strong>   The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>string|false|null</info>  The resultant <info>string</info> on success, or <info>false</info> on error. If <strong>$string</strong> is not valid for
                     the current encoding, <info>null</info> is returned.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_replace()</strong>
   * Anonymous functions


id: mb_ereg_search
type: function
doc:
<comment>Description:</comment>
  Multibyte regular expression match for predefined multibyte string
  
  Performs a multibyte regular expression match for a predefined multibyte string.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$pattern</strong>  The search pattern.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>bool</info>  <strong>mb_ereg_search()</strong> returns <info>true</info> if the multibyte string matches with the regular expression,
        or <info>false</info> otherwise. The <info>string</info> for matching is set by  <strong>mb_ereg_search_init()</strong>. If <strong>$pattern</strong> is
        not specified, the previous one is used.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_ereg_search_getpos
type: function
doc:
<comment>Description:</comment>
  Returns start point for next regular expression match
  
  Returns the start point for the next regular expression match.

<comment>Return:</comment>
  <info>int</info>  <strong>mb_ereg_search_getpos()</strong> returns the point to start regular expression match for
       <strong>mb_ereg_search()</strong>, <strong>mb_ereg_search_pos()</strong>, <strong>mb_ereg_search_regs()</strong>. The position is represented by
       bytes from the head of string.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_setpos()</strong>


id: mb_ereg_search_getregs
type: function
doc:
<comment>Description:</comment>
  Retrieve the result from the last multibyte regular expression match
  
  Retrieve the result from the last multibyte regular expression match

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> including the sub-string of matched part by last <strong>mb_ereg_search()</strong>,
               <strong>mb_ereg_search_pos()</strong>, <strong>mb_ereg_search_regs()</strong>. If there are some matches, the first
               element will have the matched sub-string, the second element will have the first part
               grouped with brackets,  the third element will have the second part grouped with
               brackets, and so on. It returns <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_ereg_search_init
type: function
doc:
<comment>Description:</comment>
  Setup string and regular expression for a multibyte regular expression match
  
  <strong>mb_ereg_search_init()</strong> sets <strong>$string</strong> and <strong>$pattern</strong> for a multibyte regular expression. These values
  are used for <strong>mb_ereg_search()</strong>, <strong>mb_ereg_search_pos()</strong>, and <strong>mb_ereg_search_regs()</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>   The search string.
  <info>string|null</info>  <strong>$pattern</strong>  The search pattern.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

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

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_regs()</strong>


id: mb_ereg_search_pos
type: function
doc:
<comment>Description:</comment>
  Returns position and length of a matched part of the multibyte regular expression for a predefined
  multibyte string
  
  Returns position and length of a matched part of the multibyte regular expression  for a
  predefined multibyte string
  
  The string for match is specified by <strong>mb_ereg_search_init()</strong>. If it is not specified, the previous
  one will be used.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$pattern</strong>  The search pattern.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> containing two elements. The first element is the offset, in bytes, where
               the match begins relative to the start of the search string, and the second element
               is the length in bytes of the match.
               
               If an error occurs, <info>false</info> is returned.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_ereg_search_regs
type: function
doc:
<comment>Description:</comment>
  Returns the matched part of a multibyte regular expression
  
  Returns the matched part of a multibyte regular expression.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$pattern</strong>  The search pattern.
  <info>string|null</info>  <strong>$options</strong>  The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>array|false</info>  <strong>mb_ereg_search_regs()</strong> executes the multibyte regular expression match, and if there
               are some matched part, it returns an <info>array</info> including substring of matched part as
               first element, the first grouped part with brackets as second element, the second
               grouped part as third element, and so on.  It returns <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_ereg_search_setpos
type: function
doc:
<comment>Description:</comment>
  Set start point of next regular expression match
  
  <strong>mb_ereg_search_setpos()</strong> sets the starting point of a match for <strong>mb_ereg_search()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The position to set. If it is negative, it counts from the end of the string.

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

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_search_init()</strong>


id: mb_eregi
type: function
doc:
<comment>Description:</comment>
  Regular expression match ignoring case with multibyte support
  
  Executes the case insensitive regular expression match with multibyte support.

<comment>Param:</comment>
  <info>string</info>  <strong>$pattern</strong>  The regular expression pattern.
  <info>string</info>  <strong>$string</strong>   The <info>string</info> being searched.
  <info>array</info>   <strong>$matches</strong>  If matches are found for parenthesized substrings of <strong>$pattern</strong> and the function
                    is called with the third argument <strong>$matches</strong>, the matches will be stored in the
                    elements of the array <strong>$matches</strong>. If no matches are found, <strong>$matches</strong> is set to an
                    empty array.
                    
                    $matches[1] will contain the substring which starts at the first left
                    parenthesis; $matches[2] will contain the substring starting at the second, and
                    so on. $matches[0] will contain a copy of the complete string matched.

<comment>Return:</comment>
  <info>bool</info>  Returns whether <strong>$pattern</strong> matches <strong>$string</strong>.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg()</strong>


id: mb_eregi_replace
type: function
doc:
<comment>Description:</comment>
  Replace regular expression with multibyte support ignoring case
  
  Scans <strong>$string</strong> for matches to <strong>$pattern</strong>, then replaces the matched text with <strong>$replacement</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$pattern</strong>      The regular expression pattern.  Multibyte characters may be used. The
                             case will be ignored.
  <info>string</info>       <strong>$replacement</strong>  The replacement text.
  <info>string</info>       <strong>$string</strong>       The searched <info>string</info>.
  <info>string|null</info>  <strong>$options</strong>      The search option. See <strong>mb_regex_set_options()</strong> for explanation.

<comment>Return:</comment>
  <info>string|false|null</info>  The resultant <info>string</info> or <info>false</info> on error.  If <strong>$string</strong> is not valid for the
                     current encoding, <info>null</info> is returned.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_ereg_replace()</strong>


id: mb_get_info
type: function
doc:
<comment>Description:</comment>
  Get internal settings of mbstring
  
  <strong>mb_get_info()</strong> returns the internal setting parameters of mbstring.

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>  If <strong>$type</strong> is not specified or is specified as <return>"all"</return>, <return>"internal_encoding"</return>,
                 <return>"http_input"</return>, <return>"http_output"</return>, <return>"http_output_conv_mimetypes"</return>, <return>"mail_charset"</return>,
                 <return>"mail_header_encoding"</return>, <return>"mail_body_encoding"</return>, <return>"illegal_chars"</return>,
                 <return>"encoding_translation"</return>, <return>"language"</return>, <return>"detect_order"</return>, <return>"substitute_character"</return> and
                 <return>"strict_detection"</return> will be returned.
                 
                 If <strong>$type</strong> is specified as <return>"internal_encoding"</return>, <return>"http_input"</return>, <return>"http_output"</return>,
                 <return>"http_output_conv_mimetypes"</return>, <return>"mail_charset"</return>, <return>"mail_header_encoding"</return>,
                 <return>"mail_body_encoding"</return>, <return>"illegal_chars"</return>, <return>"encoding_translation"</return>, <return>"language"</return>,
                 <return>"detect_order"</return>, <return>"substitute_character"</return> or <return>"strict_detection"</return> the specified setting
                 parameter will be returned.

<comment>Return:</comment>
  <info>array|string|int|false</info>  An <info>array</info> of type information if <strong>$type</strong>  is not specified, otherwise a
                          specific <strong>$type</strong>, or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mb_regex_encoding()</strong>
   * <strong>mb_http_output()</strong>


id: mb_http_input
type: function
doc:
<comment>Description:</comment>
  Detect HTTP input character encoding
  
  Detects the HTTP input character encoding.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$type</strong>  Input string specifies the input type.  <return>"G"</return> for GET, <return>"P"</return> for POST, <return>"C"</return> for
                      COOKIE, <return>"S"</return> for string, <return>"L"</return> for list, and <return>"I"</return> for the whole list (will return
                      <info>array</info>).  If type is omitted, it returns the last input type processed.

<comment>Return:</comment>
  <info>array|string|false</info>  The character encoding name, as per the <strong>$type</strong>, or an array of character
                      encoding names, if <strong>$type</strong> is <return>"I"</return>. If <strong>mb_http_input()</strong> does not process specified
                      HTTP input, it returns <info>false</info>.

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_http_output()</strong>
   * <strong>mb_detect_order()</strong>


id: mb_http_output
type: function
doc:
<comment>Description:</comment>
  Set/Get HTTP output character encoding
  
  Set/Get the HTTP output character encoding. Output after this function is called will be converted
  from the set internal encoding to <strong>$encoding</strong>.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$encoding</strong>  If <strong>$encoding</strong> is set, <strong>mb_http_output()</strong> sets the HTTP output character
                          encoding to <strong>$encoding</strong>.
                          
                          If <strong>$encoding</strong> is omitted, <strong>mb_http_output()</strong> returns the current HTTP output
                          character encoding.

<comment>Return:</comment>
  <info>string|bool</info>  If <strong>$encoding</strong> is omitted, <strong>mb_http_output()</strong> returns the current HTTP output character
               encoding. Otherwise,  Returns <info>true</info> on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_http_input()</strong>
   * <strong>mb_detect_order()</strong>


id: mb_internal_encoding
type: function
doc:
<comment>Description:</comment>
  Set/Get internal character encoding
  
  Set/Get the internal character encoding

<comment>Param:</comment>
  <info>string|null</info>  <strong>$encoding</strong>  <strong>$encoding</strong> is the character encoding name  used for the HTTP input
                          character encoding conversion, HTTP output  character encoding conversion,
                          and the default character encoding  for string functions defined by the
                          mbstring module. You should notice that the internal encoding is totally
                          different from the one for multibyte regex.

<comment>Return:</comment>
  <info>string|bool</info>  If <strong>$encoding</strong> is set, then  Returns <info>true</info> on success or <info>false</info> on failure. In this case,
               the character encoding for multibyte regex is NOT changed. If <strong>$encoding</strong> is omitted,
               then  the current character encoding name is returned.

<comment>See Also:</comment>
   * <strong>mb_http_input()</strong>
   * <strong>mb_http_output()</strong>
   * <strong>mb_detect_order()</strong>
   * <strong>mb_regex_encoding()</strong>


id: mb_language
type: function
doc:
<comment>Description:</comment>
  Set/Get current language
  
  Set/Get the current language.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$language</strong>  Used for encoding e-mail messages. The valid languages are listed in the
                          following table. <strong>mb_send_mail()</strong> uses this setting to encode e-mail.

<comment>Return:</comment>
  <info>string|bool</info>  If <strong>$language</strong> is set and <strong>$language</strong> is valid, it returns <info>true</info>. Otherwise, it returns
               <info>false</info>.  When <strong>$language</strong> is omitted or <info>null</info>, it returns the language name as a <info>string</info>.

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


id: mb_list_encodings
type: function
doc:
<comment>Description:</comment>
  Returns an array of all supported encodings
  
  Returns an array containing all supported encodings.

<comment>Return:</comment>
  <info>array</info>  Returns a numerically indexed array.

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


id: mb_ord
type: function
doc:
<comment>Description:</comment>
  Get Unicode code point of character
  
  Returns the Unicode code point value of the given character.
  
  This function complements <strong>mb_chr()</strong>.

<comment>Param:</comment>
  <info>string</info>       <strong>$string</strong>    A string
  <info>string|null</info>  <strong>$encoding</strong>  The <strong>$encoding</strong>
                          parameter is the character encoding. If it is omitted or <info>null</info>, the
                          internal character
                          encoding value will be used.

<comment>Return:</comment>
  <info>int|false</info>  The Unicode code point for the first character of <return>string</return>  or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>mb_internal_encoding()</strong>
   * <strong>mb_chr()</strong>
   * <strong>IntlChar::ord()</strong>
   * <strong>ord()</strong>


id: mb_output_handler
type: function
doc:
<comment>Description:</comment>
  Callback function converts character encoding in output buffer
  
  <strong>mb_output_handler()</strong> is <strong>ob_start()</strong> callback function. <strong>mb_output_handler()</strong> converts characters in
  the output buffer from internal character encoding to HTTP output character encoding.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The contents of the output buffer.
  <info>int</info>     <strong>$status</strong>  The status of the output buffer.

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

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


