# php_manual

id: openal_device_close
type: function
doc:
<comment>Description:</comment>
  Close an OpenAL device

<comment>Param:</comment>
  <info>resource</info>  <strong>$device</strong>  An Open AL(Device) resource (previously created by <strong>openal_device_open()</strong>) to be
                     closed.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: openal_device_open
type: function
doc:
<comment>Description:</comment>
  Initialize the OpenAL audio layer

<comment>Param:</comment>
  <info>string</info>  <strong>$device_desc</strong>  Open an audio device optionally specified by <strong>$device_desc</strong>. If <strong>$device_desc</strong>
                        is not specified the first available audio device will be used.

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Device) resource on success or  <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_device_close()</strong>
   * <strong>openal_context_create()</strong>


id: openal_listener_get
type: function
doc:
<comment>Description:</comment>
  Retrieve a listener property

<comment>Param:</comment>
  <info>int</info>  <strong>$property</strong>  Property to retrieve, one of: <info>AL_GAIN</info> (float), <info>AL_POSITION</info>
                  (array(float,float,float)), <info>AL_VELOCITY</info> (array(float,float,float)) e
                  <info>AL_ORIENTATION</info> (array(float,float,float)).

<comment>Return:</comment>
  <info>mixed</info>  Returns a float or array of floats (as appropriate) o <info>false</info> in caso di fallimento.

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


id: openal_listener_set
type: function
doc:
<comment>Description:</comment>
  Set a listener property

<comment>Param:</comment>
  <info>int  </info>  <strong>$property</strong>  Property to set, one of: <info>AL_GAIN</info> (float), <info>AL_POSITION</info>
                    (array(float,float,float)), <info>AL_VELOCITY</info> (array(float,float,float)) e
                    <info>AL_ORIENTATION</info> (array(float,float,float)).
  <info>mixed</info>  <strong>$setting </strong>  Value to set, either float, or an array of floats as appropriate.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: openal_source_create
type: function
doc:
<comment>Description:</comment>
  Generate a source resource

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Source) resource on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_source_set()</strong>
   * <strong>openal_source_play()</strong>
   * <strong>openal_source_destroy()</strong>


id: openal_source_destroy
type: function
doc:
<comment>Description:</comment>
  Destroy a source resource

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: openal_source_get
type: function
doc:
<comment>Description:</comment>
  Retrieve an OpenAL source property

<comment>Param:</comment>
  <info>resource</info>  <strong>$source  </strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).
  <info>int     </info>  <strong>$property</strong>  Property to get, one of: <info>AL_SOURCE_RELATIVE</info> (int), <info>AL_SOURCE_STATE</info> (int),
                       <info>AL_PITCH</info> (float), <info>AL_GAIN</info> (float), <info>AL_MIN_GAIN</info> (float), <info>AL_MAX_GAIN</info> (float),
                       <info>AL_MAX_DISTANCE</info> (float), <info>AL_ROLLOFF_FACTOR</info> (float), <info>AL_CONE_OUTER_GAIN</info>
                       (float), <info>AL_CONE_INNER_ANGLE</info> (float), <info>AL_CONE_OUTER_ANGLE</info> (float),
                       <info>AL_REFERENCE_DISTANCE</info> (float), <info>AL_POSITION</info> (array(float,float,float)),
                       <info>AL_VELOCITY</info> (array(float,float,float)), <info>AL_DIRECTION</info>
                       (array(float,float,float)).

<comment>Return:</comment>
  <info>mixed</info>  Returns the type associated with the property being retrieved o <info>false</info> in caso di
         fallimento.

<comment>See Also:</comment>
   * <strong>openal_source_create()</strong>
   * <strong>openal_source_set()</strong>
   * <strong>openal_source_play()</strong>


id: openal_source_pause
type: function
doc:
<comment>Description:</comment>
  Pause the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openal_source_stop()</strong>
   * <strong>openal_source_play()</strong>
   * <strong>openal_source_rewind()</strong>


id: openal_source_play
type: function
doc:
<comment>Description:</comment>
  Start playing the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openal_source_stop()</strong>
   * <strong>openal_source_pause()</strong>
   * <strong>openal_source_rewind()</strong>


id: openal_source_rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openal_source_stop()</strong>
   * <strong>openal_source_pause()</strong>
   * <strong>openal_source_play()</strong>


id: openal_source_set
type: function
doc:
<comment>Description:</comment>
  Set source property

<comment>Param:</comment>
  <info>resource</info>  <strong>$source  </strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).
  <info>int     </info>  <strong>$property</strong>  Property to set, one of: <info>AL_BUFFER</info> (OpenAL(Source)), <info>AL_LOOPING</info> (bool),
                       <info>AL_SOURCE_RELATIVE</info> (int), <info>AL_SOURCE_STATE</info> (int), <info>AL_PITCH</info> (float), <info>AL_GAIN</info>
                       (float), <info>AL_MIN_GAIN</info> (float), <info>AL_MAX_GAIN</info> (float), <info>AL_MAX_DISTANCE</info> (float),
                       <info>AL_ROLLOFF_FACTOR</info> (float), <info>AL_CONE_OUTER_GAIN</info> (float), <info>AL_CONE_INNER_ANGLE</info>
                       (float), <info>AL_CONE_OUTER_ANGLE</info> (float), <info>AL_REFERENCE_DISTANCE</info> (float),
                       <info>AL_POSITION</info> (array(float,float,float)), <info>AL_VELOCITY</info>
                       (array(float,float,float)), <info>AL_DIRECTION</info> (array(float,float,float)).
  <info>mixed   </info>  <strong>$setting </strong>  Value to assign to specified <strong>$property</strong>. Refer to the description of <strong>$property</strong>
                       for a description of the value(s) expected.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openal_source_create()</strong>
   * <strong>openal_source_get()</strong>
   * <strong>openal_source_play()</strong>


id: openal_source_stop
type: function
doc:
<comment>Description:</comment>
  Stop playing the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openal_source_play()</strong>
   * <strong>openal_source_pause()</strong>
   * <strong>openal_source_rewind()</strong>


id: openal_stream
type: function
doc:
<comment>Description:</comment>
  Begin streaming on a source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).
  <info>int     </info>  <strong>$format</strong>  Format of <strong>$data</strong>, one of: <info>AL_FORMAT_MONO8</info>, <info>AL_FORMAT_MONO16</info>, <info>AL_FORMAT_STEREO8</info> e
                     <info>AL_FORMAT_STEREO16</info>
  <info>int     </info>  <strong>$rate  </strong>  Frequency of data to stream given in Hz.

<comment>Return:</comment>
  <info>resourcefalse</info>  Returns a stream resource on success o <info>false</info> in caso di fallimento.

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


id: opendir
type: function
doc:
<comment>Description:</comment>
  Apre l'handle della directory
  
  Restituisce un handle della directory da usare nelle chiamate alle funzioni <strong>closedir()</strong>, <strong>readdir()</strong>
  e <strong>rewinddir()</strong>.

<comment>Param:</comment>
  <info>string  </info>  <strong>$path   </strong>  Il percorso della cartella da aprire
  <info>resource</info>  <strong>$context</strong>  Per una descrizione del parametro <strong>$context</strong>, fare riferimento a la sezione
                      sugli stream del manuale.

<comment>Return:</comment>
  <info>resource</info>  Restituisce, in caso di successo, un <info>resource</info> puntatore a una cartella, oppure <info>false</info> in
            caso di fallimento.
            
            Se <strong>$path</strong> non è una directory valida o la directory non può essere aperta a causa di
            restrizioni sui permessi di accesso o a causa di errori del filesystem, <strong>opendir()</strong>
            restituisce <info>false</info> e genera un errore PHP di tipo  E_WARNING. Si può sopprimere l'output
            dell'errore di <strong>opendir()</strong> anteponendo '@' al nome della funzione.

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


id: openssl_cipher_iv_length
type: function
doc:
<comment>Description:</comment>
  Gets the cipher iv length
  
  Gets the cipher initialization vector (iv) length.

<comment>Param:</comment>
  <info>string</info>  <strong>$method</strong>  The cipher method, see <strong>openssl_get_cipher_methods()</strong> for a list of potential
                   values.

<comment>Return:</comment>
  <info>int</info>  Returns the cipher length on success, or <info>false</info> on failure.


id: openssl_csr_export
type: function
doc:
<comment>Description:</comment>
  Exports a CSR as a string
  
  <strong>openssl_csr_export()</strong> takes the Certificate Signing Request represented by <strong>$csr</strong> and stores it in
  PEM format in <strong>$out</strong>, which is passed by reference.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$csr   </strong>  See CSR parameters for a list of valid values.
  <info>string</info>  <strong>$out   </strong>  on success, this string will contain the PEM encoded CSR
  <info>bool  </info>  <strong>$notext</strong>  Il parametro opzionale <strong>$notext</strong> modifica la verbosità delli'output; se è  <info>false</info>
                   nelli'output viene incluso del testo informativo addizionale leggibile da un
                   umano. Il valore di default di <strong>$notext</strong> è <info>true</info>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openssl_csr_export_to_file()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_csr_export_to_file
type: function
doc:
<comment>Description:</comment>
  Exports a CSR to a file
  
  <strong>openssl_csr_export_to_file()</strong> takes the Certificate Signing Request represented by <strong>$csr</strong> and saves
  it in PEM format into the file named by <strong>$outfilename</strong>.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$csr        </strong>  See CSR parameters for a list of valid values.
  <info>string</info>  <strong>$outfilename</strong>  Path to the output file.
  <info>bool  </info>  <strong>$notext     </strong>  Il parametro opzionale <strong>$notext</strong> modifica la verbosità delli'output; se è
                        <info>false</info> nelli'output viene incluso del testo informativo addizionale leggibile
                        da un umano. Il valore di default di <strong>$notext</strong> è <info>true</info>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openssl_csr_export()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_csr_get_public_key
type: function
doc:
<comment>Description:</comment>
  Returns the public key of a CSR
  
  <strong>openssl_csr_get_public_key()</strong> extracts the public key  from <strong>$csr</strong> and prepares it for use by other
  functions.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$csr           </strong>  See CSR parameters for a list of valid values.
  <info>bool </info>  <strong>$use_shortnames</strong>  This parameter is ignored

<comment>Return:</comment>
  <info>resource</info>  Returns a positive key resource identifier on success, or FALSE on error.

<comment>See Also:</comment>
   * <strong>openssl_csr_get_subject()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_pkey_get_details()</strong>
   * <strong>openssl_pkey_export_to_file()</strong>
   * <strong>openssl_pkey_export()</strong>


id: openssl_csr_get_subject
type: function
doc:
<comment>Description:</comment>
  Returns the subject of a CSR
  
  <strong>openssl_csr_get_subject()</strong> returns subject distinguished name information encoded in the <strong>$csr</strong>
  including fields commonName (CN), organizationName (O), countryName (C) etc.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$csr           </strong>  See CSR parameters for a list of valid values.
  <info>bool </info>  <strong>$use_shortnames</strong>  <strong>$shortnames</strong> controls how the data is indexed in the array - if <strong>$shortnames</strong>
                          is <info>true</info> (the default) then fields will be indexed with the short name
                          form, otherwise, the long name form will be used - e.g.: CN is the
                          shortname form of commonName.

<comment>Return:</comment>
  <info>arrayfalse</info>  Returns an associative array with subject description,  o <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_get_public_key()</strong>
   * <strong>openssl_x509_parse()</strong>


id: openssl_csr_new
type: function
doc:
<comment>Description:</comment>
  Generates a CSR
  
  <strong>openssl_csr_new()</strong> generates a new CSR (Certificate Signing Request) based on the information
  provided by <strong>$dn</strong>.
  
  Occorre un openssl.cnf valido installato perché questa funzione venga eseguita correttamente.
  Vedere le note nella sezione sull'installazione  per ulteriori informazioni.

<comment>Param:</comment>
  <info>array   </info>  <strong>$dn          </strong>  The Distinguished Name or subject fields to be used in the certificate.
  <info>resource</info>  <strong>$privkey     </strong>  <strong>$privkey</strong> should be set to a private key that was previously generated by
                           <strong>openssl_pkey_new()</strong> (or otherwise obtained from the other openssl_pkey
                           family of functions). The corresponding public portion of the key will be
                           used to sign the CSR.
  <info>array   </info>  <strong>$configargs  </strong>  By default, the information in your system <return>openssl.conf</return> is used to
                           initialize the request; you can specify a configuration file section by
                           setting the <return>config_section_section</return> key of <strong>$configargs</strong>.  You can also
                           specify an alternative openssl configuration file by setting the value of
                           the <return>config</return> key to the path of the file you want to use. The following
                           keys, if present in <strong>$configargs</strong> behave as their equivalents in the
                           <return>openssl.conf</return>, as listed in the table below. Configuration
                           overrides<strong>$configargs</strong> keytype<return>openssl.conf</return>
                           equivalentdescriptiondigest_alg<info>string</info>default_mdDigest method or signature
                           hash, usually one of
                           <strong>openssl_get_md_methods()</strong>x509_extensions<info>string</info>x509_extensionsSelects which
                           extensions should be used when creating an x509
                           certificatereq_extensions<info>string</info>req_extensionsSelects which extensions
                           should be used when creating a
                           CSRprivate_key_bits<info>int</info>default_bitsSpecifies how many bits should be used
                           to generate a private keyprivate_key_type<info>int</info>noneSpecifies the type of
                           private key to create.  This can be one of <info>OPENSSL_KEYTYPE_DSA</info>,
                           <info>OPENSSL_KEYTYPE_DH</info>, <info>OPENSSL_KEYTYPE_RSA</info> or <info>OPENSSL_KEYTYPE_EC</info>. The
                           default value is <info>OPENSSL_KEYTYPE_RSA</info>. encrypt_key<info>bool</info>encrypt_keyShould an
                           exported key (with passphrase) be encrypted?encrypt_key_cipher<info>int</info>none One
                           of cipher constants. curve_name<info>string</info>none One of
                           <strong>openssl_get_curve_names()</strong>. config<info>string</info>N/A Path to your own alternative
                           openssl.conf file.
  <info>array   </info>  <strong>$extraattribs</strong>  <strong>$extraattribs</strong> is used to specify additional configuration options for the
                           CSR.  Both <strong>$dn</strong> and <strong>$extraattribs</strong> are associative arrays whose keys are
                           converted to OIDs and applied to the relevant part of the request.

<comment>Return:</comment>
  <info>mixed</info>  Returns the CSR o <info>false</info> in caso di fallimento.

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


id: openssl_csr_sign
type: function
doc:
<comment>Description:</comment>
  Sign a CSR with another certificate (or itself) and generate a certificate
  
  <strong>openssl_csr_sign()</strong> generates an x509 certificate resource from the given CSR.
  
  Occorre un openssl.cnf valido installato perché questa funzione venga eseguita correttamente.
  Vedere le note nella sezione sull'installazione  per ulteriori informazioni.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$csr       </strong>  A CSR previously generated by <strong>openssl_csr_new()</strong>. It can also be the path to a
                      PEM encoded CSR when specified as file://path/to/csr or an exported string
                      generated by <strong>openssl_csr_export()</strong>.
  <info>mixed</info>  <strong>$cacert    </strong>  The generated certificate will be signed by <strong>$cacert</strong>. If <strong>$cacert</strong> is <info>null</info>, the
                      generated certificate will be a self-signed certificate.
  <info>mixed</info>  <strong>$priv_key  </strong>  <strong>$priv_key</strong> is the private key that corresponds to <strong>$cacert</strong>.
  <info>int  </info>  <strong>$days      </strong>  <strong>$days</strong> specifies the length of time for which the generated certificate will be
                      valid, in days.
  <info>array</info>  <strong>$configargs</strong>  You can finetune the CSR signing by <strong>$configargs</strong>. See <strong>openssl_csr_new()</strong> for
                      more information about <strong>$configargs</strong>.
  <info>int  </info>  <strong>$serial    </strong>  An optional the serial number of issued certificate. If not specified it will
                      default to 0.

<comment>Return:</comment>
  <info>resource</info>  Returns an x509 certificate resource on success, <info>false</info> on failure.


id: openssl_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypts data
  
  Takes a raw or base64 encoded string and decrypts it using a given method and key.

<comment>Param:</comment>
  <info>string</info>  <strong>$data   </strong>  The encrypted message to be decrypted.
  <info>string</info>  <strong>$method </strong>  The cipher method. For a list of available cipher methods, use
                    <strong>openssl_get_cipher_methods()</strong>.
  <info>string</info>  <strong>$key    </strong>  The key.
  <info>int   </info>  <strong>$options</strong>  <strong>$options</strong> can be one of <info>OPENSSL_RAW_DATA</info>, <info>OPENSSL_ZERO_PADDING</info>.
  <info>string</info>  <strong>$iv     </strong>  A non-NULL Initialization Vector.
  <info>string</info>  <strong>$tag    </strong>  The authentication tag in AEAD cipher mode. If it is incorrect, the
                    authentication fails and the function returns <info>false</info>.
                    
                    The length of the <strong>$tag</strong> is not checked by the function. It is the caller's
                    responsibility to ensure that the length of the tag matches the length of the
                    tag retrieved when <strong>openssl_encrypt()</strong> has been called. Otherwise the decryption
                    may succeed if the given tag only matches the start of the proper tag.
  <info>string</info>  <strong>$aad    </strong>  Additional authentication data.

<comment>Return:</comment>
  <info>stringfalse</info>  The decrypted string on success o <info>false</info> in caso di fallimento.

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


id: openssl_dh_compute_key
type: function
doc:
<comment>Description:</comment>
  Computes shared secret for public value of remote DH public key and local DH key
  
  The shared secret returned by <strong>openssl_dh_compute_key()</strong> is often used as an encryption key to
  secretly communicate with a remote party. This is known as the Diffie-Hellman key exchange.

<comment>Param:</comment>
  <info>string  </info>  <strong>$pub_key</strong>  DH Public key of the remote party.
  <info>resource</info>  <strong>$dh_key </strong>  A local DH private key, corresponding to the public key to be shared with the
                      remote party.

<comment>Return:</comment>
  <info>stringfalse</info>  Returns shared secret on success o <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openssl_pkey_new()</strong>
   * <strong>openssl_pkey_get_details()</strong>
   * <strong>openssl_pkey_get_private()</strong>
   * <strong>openssl_pkey_get_public()</strong>


id: openssl_digest
type: function
doc:
<comment>Description:</comment>
  Computes a digest
  
  Computes a digest hash value for the given data using a given method, and returns a raw or binhex
  encoded string.

<comment>Param:</comment>
  <info>string</info>  <strong>$data      </strong>  The data.
  <info>string</info>  <strong>$method    </strong>  The digest method to use, e.g. "sha256", see <strong>openssl_get_md_methods()</strong> for a
                       list of available digest methods.
  <info>bool  </info>  <strong>$raw_output</strong>  Setting to <info>true</info> will return as raw output data, otherwise the return value is
                       binhex encoded.

<comment>Return:</comment>
  <info>stringfalse</info>  Returns the digested hash value on success o <info>false</info> in caso di fallimento.

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


id: openssl_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypts data
  
  Encrypts given data with given method and key, returns a raw or base64 encoded string

<comment>Param:</comment>
  <info>string</info>  <strong>$data      </strong>  The plaintext message data to be encrypted.
  <info>string</info>  <strong>$method    </strong>  The cipher method. For a list of available cipher methods, use
                       <strong>openssl_get_cipher_methods()</strong>.
  <info>string</info>  <strong>$key       </strong>  The passphrase . If the passphrase  is shorted than expected, it is silently
                       padded with <return>NUL</return> characters; if the passphrase is longer than expected, it is
                       silently truncated.
  <info>int   </info>  <strong>$options   </strong>  <strong>$options</strong> is a bitwise disjunction of the flags <info>OPENSSL_RAW_DATA</info> and
                       <info>OPENSSL_ZERO_PADDING</info>.
  <info>string</info>  <strong>$iv        </strong>  A non-NULL Initialization Vector.
  <info>string</info>  <strong>$tag       </strong>  The authentication tag passed by reference when using AEAD cipher mode (GCM
                       or CCM).
  <info>string</info>  <strong>$aad       </strong>  Additional authentication data.
  <info>int   </info>  <strong>$tag_length</strong>  The length of the authentication <strong>$tag</strong>. Its value can be between 4 and 16 for
                       GCM mode.

<comment>Return:</comment>
  <info>stringfalse</info>  Returns the encrypted string on success o <info>false</info> in caso di fallimento.

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


id: openssl_error_string
type: function
doc:
<comment>Description:</comment>
  Return openSSL error message
  
  <strong>openssl_error_string()</strong> returns the last error from the openSSL library.  Error messages are
  queued, so this function should be called multiple times to collect all of the information. The
  last error will be the most recent one.

<comment>Return:</comment>
  <info>string</info>  Returns an error message string, or <info>false</info> if there are no more error messages to return.


id: openssl_free_key
type: function
doc:
<comment>Description:</comment>
  Free key resource
  
  <strong>openssl_free_key()</strong> frees the key associated with the specified <strong>$key_identifier</strong> from memory.

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

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.


id: openssl_get_cert_locations
type: function
doc:
<comment>Description:</comment>
  Retrieve the available certificate locations
  
  <strong>openssl_get_cert_locations()</strong> returns an array with information about the available certificate
  locations that will be searched for SSL certificates.

<comment>Return:</comment>
  <info>array</info>  Returns an array with the available certificate locations.


id: openssl_get_cipher_methods
type: function
doc:
<comment>Description:</comment>
  Gets available cipher methods
  
  Gets a list of available cipher methods.

<comment>Param:</comment>
  <info>bool</info>  <strong>$aliases</strong>  Set to <info>true</info> if cipher aliases should be included within the returned <info>array</info>.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of available cipher methods.

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


id: openssl_get_curve_names
type: function
doc:
<comment>Description:</comment>
  Gets list of available curve names for ECC
  
  Gets the list of available curve names for use in Elliptic curve  cryptography (ECC) for
  public/private key operations. The two most widely  standardized/supported curves are prime256v1
  (NIST P-256) and secp384r1 (NIST P-384). Approximate Equivalancies of AES, RSA, DSA and ECC
  KeysizesAES Symmetric Keysize (Bits)RSA and DSA Keysize (Bits)ECC Keysize
  (Bits)80102416011220482241283072256192768038425615360512 NIST  recommends using ECC curves with at
  least 256 bits.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of available curve names.


id: openssl_get_md_methods
type: function
doc:
<comment>Description:</comment>
  Gets available digest methods
  
  Gets a list of available digest methods.

<comment>Param:</comment>
  <info>bool</info>  <strong>$aliases</strong>  Set to <info>true</info> if digest aliases should be included within the returned <info>array</info>.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> of available digest methods.

<comment>See Also:</comment>
   * <strong>openssl_digest()</strong>
   * <strong>openssl_get_cipher_methods()</strong>


id: openssl_get_privatekey
type: function
doc:
<comment>Description:</comment>
  Alias di openssl_pkey_get_private
  
  Questa funzione è sinonimo di:  <strong>openssl_pkey_get_private()</strong>.


id: openssl_get_publickey
type: function
doc:
<comment>Description:</comment>
  Alias di openssl_pkey_get_public
  
  Questa funzione è sinonimo di:  <strong>openssl_pkey_get_public()</strong>.


id: openssl_open
type: function
doc:
<comment>Description:</comment>
  Open sealed data
  
  <strong>openssl_open()</strong> opens (decrypts) <strong>$sealed_data</strong> using the private key associated with the key
  identifier <strong>$priv_key_id</strong> and the envelope key <strong>$env_key</strong>, and fills <strong>$open_data</strong> with the decrypted
  data. The envelope key is generated when the data are sealed and can only be used by one specific
  private key. See <strong>openssl_seal()</strong> for more information.

<comment>Param:</comment>
  <info>string</info>  <strong>$sealed_data</strong>  
  <info>string</info>  <strong>$open_data  </strong>  If the call is successful the opened data is returned in this parameter.
  <info>string</info>  <strong>$env_key    </strong>  
  <info>mixed </info>  <strong>$priv_key_id</strong>  
  <info>string</info>  <strong>$method     </strong>  The cipher method.  The default value (<return>'RC4'</return>) is considered insecure. It is
                        strongly recommended to explicitly specify a secure cipher method.
                        
                        The default value (<return>'RC4'</return>) is considered insecure. It is strongly recommended
                        to explicitly specify a secure cipher method.
  <info>string</info>  <strong>$iv         </strong>  The initialization vector.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: openssl_pbkdf2
type: function
doc:
<comment>Description:</comment>
  Generates a PKCS5 v2 PBKDF2 string
  
  <strong>openssl_pbkdf2()</strong> computes PBKDF2 (Password-Based Key Derivation Function 2), a key derivation
  function defined in PKCS5 v2.

<comment>Param:</comment>
  <info>string</info>  <strong>$password        </strong>  Password from which the derived key is generated.
  <info>string</info>  <strong>$salt            </strong>  PBKDF2 recommends a crytographic salt of at least 64 bits (8 bytes).
  <info>int   </info>  <strong>$key_length      </strong>  Length of desired output key.
  <info>int   </info>  <strong>$iterations      </strong>  The number of iterations desired. NIST  recommends at least 10,000.
  <info>string</info>  <strong>$digest_algorithm</strong>  Optional hash or digest algorithm from <strong>openssl_get_md_methods()</strong>.
                             Defaults to SHA-1.

<comment>Return:</comment>
  <info>stringfalse</info>  Returns raw binary string o <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>hash_pbkdf2()</strong>
   * <strong>openssl_get_md_methods()</strong>


id: openssl_pkcs12_export
type: function
doc:
<comment>Description:</comment>
  Exports a PKCS#12 Compatible Certificate Store File to variable
  
  <strong>openssl_pkcs12_export()</strong> stores <strong>$x509</strong> into a string named by <strong>$out</strong> in a PKCS#12 file format.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$x509    </strong>  Vedere parametri delle chiavi/certificati per una lista di valori validi.
  <info>string</info>  <strong>$out     </strong>  On success, this will hold the PKCS#12.
  <info>mixed </info>  <strong>$priv_key</strong>  Private key component of PKCS#12 file. See Public/Private Key parameters for a
                     list of valid values.
  <info>string</info>  <strong>$pass    </strong>  Encryption password for unlocking the PKCS#12 file.
  <info>array </info>  <strong>$args    </strong>  Optional array, other keys will be ignored. KeyDescrizione<return>"extracerts"</return>array of
                     extra certificates or a single certificate to be included in the PKCS#12
                     file.<return>"friendlyname"</return>string to be used for the supplied certificate and key

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_pkcs12_export_to_file
type: function
doc:
<comment>Description:</comment>
  Exports a PKCS#12 Compatible Certificate Store File
  
  <strong>openssl_pkcs12_export_to_file()</strong> stores <strong>$x509</strong> into a file named by <strong>$filename</strong> in a PKCS#12 file
  format.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$x509    </strong>  Vedere parametri delle chiavi/certificati per una lista di valori validi.
  <info>string</info>  <strong>$filename</strong>  Path to the output file.
  <info>mixed </info>  <strong>$priv_key</strong>  Private key component of PKCS#12 file. See Public/Private Key parameters for a
                     list of valid values.
  <info>string</info>  <strong>$pass    </strong>  Encryption password for unlocking the PKCS#12 file.
  <info>array </info>  <strong>$args    </strong>  Optional array, other keys will be ignored. KeyDescrizione<return>"extracerts"</return>array of
                     extra certificates or a single certificate to be included in the PKCS#12
                     file.<return>"friendlyname"</return>string to be used for the supplied certificate and key

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_pkcs12_read
type: function
doc:
<comment>Description:</comment>
  Parse a PKCS#12 Certificate Store into an array
  
  <strong>openssl_pkcs12_read()</strong> parses the PKCS#12 certificate store supplied by <strong>$pkcs12</strong> into a array named
  <strong>$certs</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$pkcs12</strong>  The certificate store contents, not its file name.
  <info>array </info>  <strong>$certs </strong>  On success, this will hold the Certificate Store Data.
  <info>string</info>  <strong>$pass  </strong>  Encryption password for unlocking the PKCS#12 file.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_pkcs7_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypts an S/MIME encrypted message
  
  Decrypts the S/MIME encrypted message contained in the file specified by <strong>$infilename</strong> using the
  certificate and its associated private key specified by <strong>$recipcert</strong> and <strong>$recipkey</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$infilename </strong>  
  <info>string</info>  <strong>$outfilename</strong>  The decrypted message is written to the file specified by <strong>$outfilename</strong>.
  <info>mixed </info>  <strong>$recipcert  </strong>  
  <info>mixed </info>  <strong>$recipkey   </strong>  

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_pkcs7_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt an S/MIME message
  
  <strong>openssl_pkcs7_encrypt()</strong> takes the contents of the file named <strong>$infile</strong> and encrypts them using an
  RC2 40-bit cipher so that they can only be read by the intended recipients specified by
  <strong>$recipcerts</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$infile    </strong>  
  <info>string</info>  <strong>$outfile   </strong>  
  <info>mixed </info>  <strong>$recipcerts</strong>  Either a lone X.509 certificate, or an array of X.509 certificates.
  <info>array </info>  <strong>$headers   </strong>  <strong>$headers</strong> is an array of headers that will be prepended to the data after it
                       has been encrypted.
                       
                       <strong>$headers</strong> can be either an associative array keyed by header name, or an
                       indexed array, where each element contains a single header line.
  <info>int   </info>  <strong>$flags     </strong>  <strong>$flags</strong> can be used to specify options that affect the encoding process - see
                       PKCS7 constants.
  <info>int   </info>  <strong>$cipherid  </strong>  One of cipher constants.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_pkcs7_read
type: function
doc:
<comment>Description:</comment>
  Export the PKCS7 file to an array of PEM certificates
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

<comment>Param:</comment>
  <info>string</info>  <strong>$infilename</strong>  
  <info>array </info>  <strong>$certs     </strong>  

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_pkcs7_sign
type: function
doc:
<comment>Description:</comment>
  Sign an S/MIME message
  
  <strong>openssl_pkcs7_sign()</strong> takes the contents of the file named <strong>$infilename</strong> and signs them using the
  certificate and its matching private key specified by <strong>$signcert</strong> and <strong>$privkey</strong> parameters.

<comment>Param:</comment>
  <info>string</info>  <strong>$infilename </strong>  The input file you are intending to digitally sign.
  <info>string</info>  <strong>$outfilename</strong>  The file which the digital signature will be written to.
  <info>mixed </info>  <strong>$signcert   </strong>  The X.509 certificate used to digitally sign infilename. See Key/Certificate
                        parameters for a list of valid values.
  <info>mixed </info>  <strong>$privkey    </strong>  <strong>$privkey</strong> is the private key corresponding to signcert. See Public/Private
                        Key parameters for a list of valid values.
  <info>array </info>  <strong>$headers    </strong>  <strong>$headers</strong> is an array of headers that will be prepended to the data after it
                        has been signed (see <strong>openssl_pkcs7_encrypt()</strong> for more information about the
                        format of this parameter).
  <info>int   </info>  <strong>$flags      </strong>  <strong>$flags</strong> can be used to alter the output - see PKCS7 constants.
  <info>string</info>  <strong>$extracerts </strong>  <strong>$extracerts</strong> specifies the name of a file containing a bunch of extra
                        certificates to include in the signature which can for example be used to
                        help the recipient to verify the certificate that you used.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_pkcs7_verify
type: function
doc:
<comment>Description:</comment>
  Verifies the signature of an S/MIME signed message
  
  <strong>openssl_pkcs7_verify()</strong> reads the S/MIME message contained in the given file and examines the
  digital signature.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename   </strong>  Path to the message.
  <info>int   </info>  <strong>$flags      </strong>  <strong>$flags</strong> can be used to affect how the signature is verified - see PKCS7
                        constants for more information.
  <info>string</info>  <strong>$outfilename</strong>  If the <strong>$outfilename</strong> is specified, it should be a string holding the name of
                        a file into which the certificates of the persons that signed the messages
                        will be stored in PEM format.
  <info>array </info>  <strong>$cainfo     </strong>  If the <strong>$cainfo</strong> is specified, it should hold information about the trusted CA
                        certificates to use in the verification process - see certificate
                        verification for more information about this parameter.
  <info>string</info>  <strong>$extracerts </strong>  If the <strong>$extracerts</strong> is specified, it is the filename of a file containing a
                        bunch of certificates to use as untrusted CAs.
  <info>string</info>  <strong>$content    </strong>  You can specify a filename with <strong>$content</strong> that will be filled with the
                        verified data, but with the signature information stripped.
  <info>string</info>  <strong>$p7bfilename</strong>  

<comment>Return:</comment>
  <info>mixed</info>  Returns <info>true</info> if the signature is verified, <info>false</info> if it is not correct (the message has been
         tampered with, or the signing certificate is invalid), or -1 on error.


id: openssl_pkey_export
type: function
doc:
<comment>Description:</comment>
  Gets an exportable representation of a key into a string
  
  <strong>openssl_pkey_export()</strong> exports <strong>$key</strong> as a PEM encoded string and stores it into <strong>$out</strong> (which is
  passed by reference).
  
  Occorre un openssl.cnf valido installato perché questa funzione venga eseguita correttamente.
  Vedere le note nella sezione sull'installazione  per ulteriori informazioni.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$key       </strong>  
  <info>string</info>  <strong>$out       </strong>  
  <info>string</info>  <strong>$passphrase</strong>  The key is optionally protected by <strong>$passphrase</strong>.
  <info>array </info>  <strong>$configargs</strong>  <strong>$configargs</strong> can be used to fine-tune the export process by specifying and/or
                       overriding options for the openssl configuration file.  See <strong>openssl_csr_new()</strong>
                       for more information about <strong>$configargs</strong>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_pkey_export_to_file
type: function
doc:
<comment>Description:</comment>
  Gets an exportable representation of a key into a file 
  
  <strong>openssl_pkey_export_to_file()</strong> saves an ascii-armoured (PEM encoded) rendition of <strong>$key</strong> into the
  file named by <strong>$outfilename</strong>.
  
  Occorre un openssl.cnf valido installato perché questa funzione venga eseguita correttamente.
  Vedere le note nella sezione sull'installazione  per ulteriori informazioni.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$key        </strong>  
  <info>string</info>  <strong>$outfilename</strong>  Path to the output file.
  <info>string</info>  <strong>$passphrase </strong>  The key can be optionally protected by a <strong>$passphrase</strong>.
  <info>array </info>  <strong>$configargs </strong>  <strong>$configargs</strong> can be used to fine-tune the export process by specifying and/or
                        overriding options for the openssl configuration file. See <strong>openssl_csr_new()</strong>
                        for more information about <strong>$configargs</strong>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_pkey_free
type: function
doc:
<comment>Description:</comment>
  Frees a private key
  
  This function frees a private key created by <strong>openssl_pkey_new()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$key</strong>  Resource holding the key.

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.


id: openssl_pkey_get_details
type: function
doc:
<comment>Description:</comment>
  Returns an array with the key details
  
  This function returns the key details (bits, key, type).

<comment>Param:</comment>
  <info>resource</info>  <strong>$key</strong>  Resource holding the key.

<comment>Return:</comment>
  <info>array</info>  Returns an array with the key details in success or <info>false</info> in failure. Returned array has
         indexes <return>bits</return> (number of bits), <return>key</return> (string representation of the public key) and <return>type</return> (type
         of the key which is one of <info>OPENSSL_KEYTYPE_RSA</info>, <info>OPENSSL_KEYTYPE_DSA</info>, <info>OPENSSL_KEYTYPE_DH</info>,
         <info>OPENSSL_KEYTYPE_EC</info> or -1 meaning unknown).
         
         Depending on the key type used, additional details may be returned. Note that  some
         elements may not always be available.
         
         <info>OPENSSL_KEYTYPE_RSA</info>, an additional array key named <return>"rsa"</return>,  containing the key data is
         returned.
         
         <info>OPENSSL_KEYTYPE_DSA</info>, an additional array key named <return>"dsa"</return>,  containing the key data is
         returned.
         
         <info>OPENSSL_KEYTYPE_DH</info>, an additional array key named <return>"dh"</return>,  containing the key data is
         returned.
         
         <info>OPENSSL_KEYTYPE_EC</info>, an additional array key named <return>"ec"</return>,  containing the key data is
         returned.


id: openssl_pkey_get_private
type: function
doc:
<comment>Description:</comment>
  Get a private key
  
  <strong>openssl_pkey_get_private()</strong> parses <strong>$key</strong> and prepares it for use by other functions.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$key       </strong>  <strong>$key</strong> can be one of the following: a string having the format
                       file://path/to/file.pem. The named file must contain a PEM encoded
                       certificate/private key (it may contain both). A PEM formatted private key.
                       
                       a string having the format file://path/to/file.pem. The named file must
                       contain a PEM encoded certificate/private key (it may contain both).
                       
                       A PEM formatted private key.
  <info>string</info>  <strong>$passphrase</strong>  The optional parameter <strong>$passphrase</strong> must be used if the specified key is
                       encrypted (protected by a passphrase).

<comment>Return:</comment>
  <info>resource</info>  Returns a positive key resource identifier on success, or <info>false</info> on error.


id: openssl_pkey_get_public
type: function
doc:
<comment>Description:</comment>
  Extract public key from certificate and prepare it for use
  
  <strong>openssl_pkey_get_public()</strong> extracts the public key from <strong>$certificate</strong> and prepares it for use by
  other functions.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$certificate</strong>  <strong>$certificate</strong> can be one of the following: an X.509 certificate resourcea
                       string having the format file://path/to/file.pem. The named file must contain
                       a PEM encoded certificate/public key (it may contain both). A PEM formatted
                       public key.
                       
                       an X.509 certificate resource
                       
                       a string having the format file://path/to/file.pem. The named file must
                       contain a PEM encoded certificate/public key (it may contain both).
                       
                       A PEM formatted public key.

<comment>Return:</comment>
  <info>resource</info>  Returns a positive key resource identifier on success, or <info>false</info> on error.


id: openssl_pkey_new
type: function
doc:
<comment>Description:</comment>
  Generates a new private key 
  
  <strong>openssl_pkey_new()</strong> generates a new private and public key pair.  The public component of the key
  can be obtained using <strong>openssl_pkey_get_public()</strong>.
  
  Occorre un openssl.cnf valido installato perché questa funzione venga eseguita correttamente.
  Vedere le note nella sezione sull'installazione  per ulteriori informazioni.

<comment>Param:</comment>
  <info>array</info>  <strong>$configargs</strong>  You can finetune the key generation (such as specifying the number of bits)
                      using <strong>$configargs</strong>.  See <strong>openssl_csr_new()</strong> for more information about
                      <strong>$configargs</strong>.

<comment>Return:</comment>
  <info>resource</info>  Returns a resource identifier for the pkey on success, or <info>false</info> on error.


id: openssl_private_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypts data with private key 
  
  <strong>openssl_private_decrypt()</strong> decrypts <strong>$data</strong> that was previously encrypted via
  <strong>openssl_public_encrypt()</strong> and stores the result into <strong>$decrypted</strong>.
  
  You can use this function e.g. to decrypt data which is supposed to only be available to you.

<comment>Param:</comment>
  <info>string</info>  <strong>$data     </strong>  
  <info>string</info>  <strong>$decrypted</strong>  
  <info>mixed </info>  <strong>$key      </strong>  <strong>$key</strong> must be the private key corresponding that was used to encrypt the data.
  <info>int   </info>  <strong>$padding  </strong>  <strong>$padding</strong> can be one of <info>OPENSSL_PKCS1_PADDING</info>, <info>OPENSSL_SSLV23_PADDING</info>,
                      <info>OPENSSL_PKCS1_OAEP_PADDING</info>, <info>OPENSSL_NO_PADDING</info>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openssl_public_encrypt()</strong>
   * <strong>openssl_public_decrypt()</strong>


id: openssl_private_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypts data with private key 
  
  <strong>openssl_private_encrypt()</strong> encrypts <strong>$data</strong> with private <strong>$key</strong> and stores the result into <strong>$crypted</strong>.
  Encrypted data can be decrypted via <strong>openssl_public_decrypt()</strong>.
  
  This function can be used e.g. to sign data (or its hash) to prove that it is not written by
  someone else.

<comment>Param:</comment>
  <info>string</info>  <strong>$data   </strong>  
  <info>string</info>  <strong>$crypted</strong>  
  <info>mixed </info>  <strong>$key    </strong>  
  <info>int   </info>  <strong>$padding</strong>  <strong>$padding</strong> can be one of <info>OPENSSL_PKCS1_PADDING</info>, <info>OPENSSL_NO_PADDING</info>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openssl_public_encrypt()</strong>
   * <strong>openssl_public_decrypt()</strong>


id: openssl_public_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypts data with public key 
  
  <strong>openssl_public_decrypt()</strong> decrypts <strong>$data</strong> that was previous encrypted via <strong>openssl_private_encrypt()</strong>
  and stores the result into <strong>$decrypted</strong>.
  
  You can use this function e.g. to check if the message was written by the owner of the private
  key.

<comment>Param:</comment>
  <info>string</info>  <strong>$data     </strong>  
  <info>string</info>  <strong>$decrypted</strong>  
  <info>mixed </info>  <strong>$key      </strong>  <strong>$key</strong> must be the public key corresponding that was used to encrypt the data.
  <info>int   </info>  <strong>$padding  </strong>  <strong>$padding</strong> can be one of <info>OPENSSL_PKCS1_PADDING</info>, <info>OPENSSL_NO_PADDING</info>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openssl_private_encrypt()</strong>
   * <strong>openssl_private_decrypt()</strong>


id: openssl_public_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypts data with public key 
  
  <strong>openssl_public_encrypt()</strong> encrypts <strong>$data</strong> with public <strong>$key</strong> and stores the result into <strong>$crypted</strong>.
  Encrypted data can be decrypted via <strong>openssl_private_decrypt()</strong>.
  
  This function can be used e.g. to encrypt message which can be then read only by owner of the
  private key. It can be also used to store secure data in database.

<comment>Param:</comment>
  <info>string</info>  <strong>$data   </strong>  
  <info>string</info>  <strong>$crypted</strong>  This will hold the result of the encryption.
  <info>mixed </info>  <strong>$key    </strong>  The public key.
  <info>int   </info>  <strong>$padding</strong>  <strong>$padding</strong> can be one of <info>OPENSSL_PKCS1_PADDING</info>, <info>OPENSSL_SSLV23_PADDING</info>,
                    <info>OPENSSL_PKCS1_OAEP_PADDING</info>, <info>OPENSSL_NO_PADDING</info>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>openssl_private_encrypt()</strong>
   * <strong>openssl_private_decrypt()</strong>


id: openssl_random_pseudo_bytes
type: function
doc:
<comment>Description:</comment>
  Generate a pseudo-random string of bytes
  
  Generates a <info>string</info> of pseudo-random bytes, with the number of bytes determined by the <strong>$length</strong>
  parameter.
  
  It also indicates if a cryptographically strong algorithm was used to produce the pseudo-random
  bytes, and does this via the optional <strong>$crypto_strong</strong> parameter. It's rare for this to be <info>false</info>,
  but some systems may be broken or old.

<comment>Param:</comment>
  <info>int </info>  <strong>$length       </strong>  The length of the desired string of bytes. Must be a positive integer. PHP
                        will try to cast this parameter to a non-null integer to use it.
  <info>bool</info>  <strong>$crypto_strong</strong>  If passed into the function, this will hold a <info>bool</info> value that determines if
                        the algorithm used was "cryptographically strong", e.g., safe for usage with
                        GPG,  passwords, etc. <info>true</info> if it did, otherwise <info>false</info>

<comment>Return:</comment>
  <info>stringfalse</info>  Returns the generated <info>string</info> of bytes on success,  o <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>random_bytes()</strong>
   * <strong>bin2hex()</strong>
   * <strong>crypt()</strong>
   * <strong>mt_rand()</strong>
   * <strong>uniqid()</strong>


id: openssl_seal
type: function
doc:
<comment>Description:</comment>
  Seal (encrypt) data
  
  <strong>openssl_seal()</strong> seals (encrypts) <strong>$data</strong> by using the given <strong>$method</strong> with a randomly generated secret
  key. The key is encrypted with each of the public keys associated with the identifiers in
  <strong>$pub_key_ids</strong> and each encrypted key is returned in <strong>$env_keys</strong>. This means that one can send sealed
  data to multiple recipients (provided one has obtained their public keys). Each recipient must
  receive both the sealed data and the envelope key that was encrypted with the recipient's public
  key.

<comment>Param:</comment>
  <info>string</info>  <strong>$data       </strong>  The data to seal.
  <info>string</info>  <strong>$sealed_data</strong>  The sealed data.
  <info>array </info>  <strong>$env_keys   </strong>  Array of encrypted keys.
  <info>array </info>  <strong>$pub_key_ids</strong>  Array of public key resource identifiers.
  <info>string</info>  <strong>$method     </strong>  The cipher method.  The default value (<return>'RC4'</return>) is considered insecure. It is
                        strongly recommended to explicitly specify a secure cipher method.
                        
                        The default value (<return>'RC4'</return>) is considered insecure. It is strongly recommended
                        to explicitly specify a secure cipher method.
  <info>string</info>  <strong>$iv         </strong>  The initialization vector.

<comment>Return:</comment>
  <info>int</info>  Returns the length of the sealed data on success, or <info>false</info> on error. If successful the sealed
       data is returned in <strong>$sealed_data</strong>, and the envelope keys in <strong>$env_keys</strong>.

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


id: openssl_sign
type: function
doc:
<comment>Description:</comment>
  Generate signature
  
  <strong>openssl_sign()</strong> computes a signature for the specified <strong>$data</strong> by generating a cryptographic digital
  signature using the private key associated with <strong>$priv_key_id</strong>. Note that the data itself is not
  encrypted.

<comment>Param:</comment>
  <info>string</info>  <strong>$data         </strong>  The string of data you wish to sign
  <info>string</info>  <strong>$signature    </strong>  If the call was successful the signature is returned in <strong>$signature</strong>.
  <info>mixed </info>  <strong>$priv_key_id  </strong>  <info>resource</info> - a key, returned by <strong>openssl_get_privatekey()</strong>
                          
                          <info>string</info> - a PEM formatted key
  <info>mixed </info>  <strong>$signature_alg</strong>  <info>int</info> - one of these Signature Algorithms.
                          
                          <info>string</info> - a valid string returned by <strong>openssl_get_md_methods()</strong> example,
                          "sha256WithRSAEncryption" or "sha384".

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: openssl_spki_export
type: function
doc:
<comment>Description:</comment>
  Exports a valid PEM formatted public key signed public key and challenge
  
  Exports PEM formatted public key from encoded signed public key and challenge

<comment>Param:</comment>
  <info>string</info>  <strong>$spkac</strong>  Expects a valid signed public key and challenge

<comment>Return:</comment>
  <info>string</info>  Returns the associated PEM formatted public key or NULL on failure.

<comment>See Also:</comment>
   * <strong>openssl_spki_new()</strong>
   * <strong>openssl_spki_verify()</strong>
   * <strong>openssl_spki_export_challenge()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_spki_export_challenge
type: function
doc:
<comment>Description:</comment>
  Exports the challenge associated with a signed public key and challenge
  
  Exports challenge from encoded signed public key and challenge

<comment>Param:</comment>
  <info>string</info>  <strong>$spkac</strong>  Expects a valid signed public key and challenge

<comment>Return:</comment>
  <info>string</info>  Returns the associated challenge string or NULL on failure.

<comment>See Also:</comment>
   * <strong>openssl_spki_new()</strong>
   * <strong>openssl_spki_verify()</strong>
   * <strong>openssl_spki_export()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_spki_new
type: function
doc:
<comment>Description:</comment>
  Generate a new signed public key and challenge
  
  Generates a signed public key and challenge using specified hashing algorithm

<comment>Param:</comment>
  <info>resource</info>  <strong>$privkey  </strong>  <strong>$privkey</strong> should be set to a private key that was previously generated by
                        <strong>openssl_pkey_new()</strong> (or otherwise obtained from the other openssl_pkey family
                        of functions). The corresponding public portion of the key will be used to
                        sign the CSR.
  <info>string  </info>  <strong>$challenge</strong>  The challenge associated to associate with the SPKAC
  <info>int     </info>  <strong>$algorithm</strong>  The digest algorithm. See openssl_get_md_method().

<comment>Return:</comment>
  <info>string</info>  Returns a signed public key and challenge string or NULL on failure.

<comment>See Also:</comment>
   * <strong>openssl_spki_verify()</strong>
   * <strong>openssl_spki_export_challenge()</strong>
   * <strong>openssl_spki_export()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_spki_verify
type: function
doc:
<comment>Description:</comment>
  Verifies a signed public key and challenge
  
  Validates the supplied signed public key and challenge

<comment>Param:</comment>
  <info>string</info>  <strong>$spkac</strong>  Expects a valid signed public key and challenge

<comment>Return:</comment>
  <info>string</info>  Returns a boolean on success or failure.

<comment>See Also:</comment>
   * <strong>openssl_spki_new()</strong>
   * <strong>openssl_spki_export_challenge()</strong>
   * <strong>openssl_spki_export()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_verify
type: function
doc:
<comment>Description:</comment>
  Verify signature
  
  <strong>openssl_verify()</strong> verifies that the <strong>$signature</strong> is correct for the specified <strong>$data</strong> using the public
  key associated with <strong>$pub_key_id</strong>. This must be the public key corresponding to the private key used
  for signing.

<comment>Param:</comment>
  <info>string</info>  <strong>$data         </strong>  The string of data used to generate the signature previously
  <info>string</info>  <strong>$signature    </strong>  A raw binary string, generated by <strong>openssl_sign()</strong> or similar means
  <info>mixed </info>  <strong>$pub_key_id   </strong>  <info>resource</info> - a key, returned by <strong>openssl_get_publickey()</strong>
                          
                          <info>string</info> - a PEM formatted key, example, "-----BEGIN PUBLIC KEY-----
                          MIIBCgK..."
  <info>mixed </info>  <strong>$signature_alg</strong>  <info>int</info> - one of these Signature Algorithms.
                          
                          <info>string</info> - a valid string returned by <strong>openssl_get_md_methods()</strong> example,
                          "sha1WithRSAEncryption" or "sha512".

<comment>Return:</comment>
  <info>int</info>  Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

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


id: openssl_x509_check_private_key
type: function
doc:
<comment>Description:</comment>
  Checks if a private key corresponds to a certificate
  
  Checks whether the given <strong>$key</strong> is the private key that corresponds to <strong>$cert</strong>.
  
  The function does not check if <strong>$key</strong> is indeed a private key or not. It merely compares the public
  materials (e.g. exponent and modulus of an RSA key) and/or key parameters (e.g. EC params of an EC
  key) of a key pair.
  
  This means, for example, that a public key could be given for <strong>$key</strong> and the function may return
  <info>true</info>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$cert</strong>  The certificate.
  <info>mixed</info>  <strong>$key </strong>  The private key.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$key</strong> is the private key that corresponds to <strong>$cert</strong>, or <info>false</info> otherwise.


id: openssl_x509_checkpurpose
type: function
doc:
<comment>Description:</comment>
  Verifies if a certificate can be used for a particular purpose
  
  <strong>openssl_x509_checkpurpose()</strong> examines a certificate to see if it can be used for the specified
  <strong>$purpose</strong>.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$x509cert     </strong>  The examined certificate.
  <info>int   </info>  <strong>$purpose      </strong>  <strong>openssl_x509_checkpurpose()</strong>
                          purposesConstantDescriptionX509_PURPOSE_SSL_CLIENTCan the certificate be
                          used for the client side of an SSL connection?X509_PURPOSE_SSL_SERVERCan
                          the certificate be used for the server side of an SSL
                          connection?X509_PURPOSE_NS_SSL_SERVERCan the cert be used for Netscape SSL
                          server?X509_PURPOSE_SMIME_SIGNCan the cert be used to sign S/MIME
                          email?X509_PURPOSE_SMIME_ENCRYPTCan the cert be used to encrypt S/MIME
                          email?X509_PURPOSE_CRL_SIGNCan the cert be used to sign a certificate
                          revocation list (CRL)?X509_PURPOSE_ANYCan the cert be used for Any/All
                          purposes? These options are not bitfields - you may specify one only!
  <info>array </info>  <strong>$cainfo       </strong>  <strong>$cainfo</strong> should be an array of trusted CA files/dirs as described in
                          Certificate Verification.
  <info>string</info>  <strong>$untrustedfile</strong>  If specified, this should be the name of a PEM encoded file holding
                          certificates that can be used to help verify the certificate, although no
                          trust is placed in the certificates that come from that file.

<comment>Return:</comment>
  <info>int</info>  Returns <info>true</info> if the certificate can be used for the intended purpose, <info>false</info> if it cannot, or
       -1 on error.


id: openssl_x509_export
type: function
doc:
<comment>Description:</comment>
  Exports a certificate as a string
  
  <strong>openssl_x509_export()</strong> stores <strong>$x509</strong> into a string named by <strong>$output</strong> in a PEM encoded format.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$x509  </strong>  Vedere parametri delle chiavi/certificati per una lista di valori validi.
  <info>string</info>  <strong>$output</strong>  On success, this will hold the PEM.
  <info>bool  </info>  <strong>$notext</strong>  Il parametro opzionale <strong>$notext</strong> modifica la verbosità delli'output; se è  <info>false</info>
                   nelli'output viene incluso del testo informativo addizionale leggibile da un
                   umano. Il valore di default di <strong>$notext</strong> è <info>true</info>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_x509_export_to_file
type: function
doc:
<comment>Description:</comment>
  Exports a certificate to file
  
  <strong>openssl_x509_export_to_file()</strong> stores <strong>$x509</strong> into a file named by <strong>$outfilename</strong> in a PEM encoded
  format.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$x509       </strong>  Vedere parametri delle chiavi/certificati per una lista di valori validi.
  <info>string</info>  <strong>$outfilename</strong>  Path to the output file.
  <info>bool  </info>  <strong>$notext     </strong>  Il parametro opzionale <strong>$notext</strong> modifica la verbosità delli'output; se è
                        <info>false</info> nelli'output viene incluso del testo informativo addizionale leggibile
                        da un umano. Il valore di default di <strong>$notext</strong> è <info>true</info>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: openssl_x509_fingerprint
type: function
doc:
<comment>Description:</comment>
  Calculates the fingerprint, or digest, of a given X.509 certificate
  
  <strong>openssl_x509_fingerprint()</strong> returns the digest of <strong>$x509</strong> as a string.

<comment>Param:</comment>
  <info>mixed </info>  <strong>$x509          </strong>  Vedere parametri delle chiavi/certificati per una lista di valori validi.
  <info>string</info>  <strong>$hash_algorithm</strong>  The digest method or hash algorithm to use, e.g. "sha256", one of
                           <strong>openssl_get_md_methods()</strong>.
  <info>bool  </info>  <strong>$raw_output    </strong>  When set to <info>true</info>, outputs raw binary data. <info>false</info> outputs lowercase
                           hexits.

<comment>Return:</comment>
  <info>string</info>  Returns a string containing the calculated certificate fingerprint as lowercase hexits
          unless <strong>$raw_output</strong> is set to <info>true</info> in which case the raw binary representation of the
          message digest is returned.
          
          Returns <info>false</info> on failure.


id: openssl_x509_free
type: function
doc:
<comment>Description:</comment>
  Free certificate resource
  
  <strong>openssl_x509_free()</strong> frees the certificate associated with the specified <strong>$x509cert</strong> resource from
  memory.

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

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.


id: openssl_x509_parse
type: function
doc:
<comment>Description:</comment>
  Parse an X509 certificate and return the information as an array
  
  <strong>openssl_x509_parse()</strong> returns information about the supplied <strong>$x509cert</strong>, including fields such as
  subject name, issuer name, purposes, valid from and valid to dates etc.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$x509cert  </strong>  X509 certificate. See Key/Certificate parameters for a list of valid values.
  <info>bool </info>  <strong>$shortnames</strong>  <strong>$shortnames</strong> controls how the data is indexed in the array - if <strong>$shortnames</strong> is
                      <info>true</info> (the default) then fields will be indexed with the short name form,
                      otherwise, the long name form will be used - e.g.: CN is the shortname form of
                      commonName.

<comment>Return:</comment>
  <info>array</info>  The structure of the returned data is (deliberately) not yet documented, as it is still
         subject to change.


id: openssl_x509_read
type: function
doc:
<comment>Description:</comment>
  Parse an X.509 certificate and return a resource identifier for
    it
  
  <strong>openssl_x509_read()</strong> parses the certificate supplied by <strong>$x509certdata</strong> and returns a resource
  identifier for it.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$x509certdata</strong>  X509 certificate. See Key/Certificate parameters for a list of valid values.

<comment>Return:</comment>
  <info>resourcefalse</info>  Returns a resource identifier on success o <info>false</info> in caso di fallimento.


id: openssl_x509_verify
type: function
doc:
<comment>Description:</comment>
  Verifies digital signature of x509 certificate against a public key
  
  <strong>openssl_x509_verify()</strong> verifies that the  <strong>$x509</strong> certificate was signed by the private  key
  corresponding to public key <strong>$pub_key_id</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$x509      </strong>  Vedere parametri delle chiavi/certificati per una lista di valori validi.
  <info>mixed</info>  <strong>$pub_key_id</strong>  <info>resource</info> - a key, returned by <strong>openssl_get_publickey()</strong>
                      
                      <info>string</info> - a PEM formatted key, example, "-----BEGIN PUBLIC KEY-----
                      MIIBCgK..."

<comment>Return:</comment>
  <info>int</info>  Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

<comment>See Also:</comment>
   * <strong>openssl_verify()</strong>
   * <strong>openssl_get_publickey()</strong>


id: output_add_rewrite_var
type: function
doc:
<comment>Description:</comment>
  Add URL rewriter values
  
  This function adds another name/value pair to the URL rewrite mechanism. The name and value will
  be added to URLs (as GET parameter) and forms (as hidden input fields) the same way as the session
  ID when transparent URL rewriting is enabled with session.use_trans_sid.
  
  This function's behaviour is controlled by the url_rewriter.tags and url_rewriter.hosts php.ini
  parameters.
  
  Note that this function can be successfully called at most once per request.
  
  Calling this function will implicitly start output buffering if it is not active already.

<comment>Param:</comment>
  <info>string</info>  <strong>$name </strong>  The variable name.
  <info>string</info>  <strong>$value</strong>  The variable value.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>output_reset_rewrite_vars()</strong>
   * <strong>ob_flush()</strong>
   * <strong>ob_list_handlers()</strong>
   * url_rewriter.tags
   * url_rewriter.hosts
   * session.trans_sid_tags
   * session.trans_sid_hosts


id: output_reset_rewrite_vars
type: function
doc:
<comment>Description:</comment>
  Reset URL rewriter values
  
  This function resets the URL rewriter and removes all rewrite variables previously set by the
  <strong>output_add_rewrite_var()</strong> function.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>output_add_rewrite_var()</strong>
   * <strong>ob_flush()</strong>
   * <strong>ob_list_handlers()</strong>
   * url_rewriter.tags
   * url_rewriter.hosts
   * session.trans_sid_tags
   * session.trans_sid_hosts


id: pack
type: function
doc:
<comment>Description:</comment>
  Pack data into binary string
  
  Pack given arguments into a binary string according to <strong>$format</strong>.
  
  The idea for this function was taken from Perl and all formatting codes work the same as in Perl.
  However, there are some formatting codes that are missing such as Perl's "u" format code.
  
  Note that the distinction between signed and unsigned values only affects the function <strong>unpack()</strong>,
  where as function <strong>pack()</strong> gives the same result for signed and unsigned format codes.

<comment>Param:</comment>
  <info>string</info>  <strong>$format</strong>  The <strong>$format</strong> string consists of format codes followed by an optional repeater
                   argument. The repeater argument can be either an integer value or <return>*</return> for repeating
                   to the end of the input data. For a, A, h, H the repeat count specifies how many
                   characters of one data argument are taken, for @ it is the absolute position
                   where to put the next data, for everything else the repeat count specifies how
                   many data arguments are consumed and packed into the resulting binary string.
                   
                   Currently implemented formats are: <strong>pack()</strong> format
                   charactersCodeDescriptionaNUL-padded stringASPACE-padded stringhHex string, low
                   nibble firstHHex string, high nibble firstcsigned charCunsigned charssigned short
                   (always 16 bit, machine byte order)Sunsigned short (always 16 bit, machine byte
                   order)nunsigned short (always 16 bit, big endian byte order)vunsigned short
                   (always 16 bit, little endian byte order)isigned integer (machine dependent size
                   and byte order)Iunsigned integer (machine dependent size and byte order)lsigned
                   long (always 32 bit, machine byte order)Lunsigned long (always 32 bit, machine
                   byte order)Nunsigned long (always 32 bit, big endian byte order)Vunsigned long
                   (always 32 bit, little endian byte order)qsigned long long (always 64 bit,
                   machine byte order)Qunsigned long long (always 64 bit, machine byte
                   order)Junsigned long long (always 64 bit, big endian byte order)Punsigned long
                   long (always 64 bit, little endian byte order)ffloat (machine dependent size and
                   representation)gfloat (machine dependent size, little endian byte order)Gfloat
                   (machine dependent size, big endian byte order)ddouble (machine dependent size
                   and representation)edouble (machine dependent size, little endian byte
                   order)Edouble (machine dependent size, big endian byte order)xNUL byteXBack up
                   one byteZNUL-padded string (new in PHP 5.5)@NUL-fill to absolute position
  <info>mixed </info>  <strong>$values</strong>  

<comment>Return:</comment>
  <info>string</info>  Returns a binary string containing data,  o <info>false</info> in caso di fallimento.

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


id: parallel\Channel::__construct
type: function
doc:
<comment>Description:</comment>
  Channel Construction
  
  Shall make an anonymous unbuffered channel
  
  Shall make an anonymous buffered channel with the given capacity

<comment>Param:</comment>
  <info>int</info>  <strong>$capacity</strong>  May be <info>Channel::Infinite</info> or a positive integer


id: parallel\Channel::close
type: function
doc:
<comment>Description:</comment>
  Closing
  
  Shall close this channel

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


id: parallel\Channel::make
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall make an unbuffered channel with the given name
  
  Shall make a buffered channel with the given name and capacity

<comment>Param:</comment>
  <info>string</info>  <strong>$name    </strong>  The name of the channel.
  <info>int   </info>  <strong>$capacity</strong>  May be <info>Channel::Infinite</info> or a positive integer

<comment>Return:</comment>
  <info>Channel</info>  


id: parallel\Channel::open
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall open the channel with the given name

<comment>Return:</comment>
  <info>Channel</info>  


id: parallel\Channel::recv
type: function
doc:
<comment>Description:</comment>
  Sharing
  
  Shall recv a value from this channel

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


id: parallel\Channel::send
type: function
doc:
<comment>Description:</comment>
  Sharing
  
  Shall send the given value on this channel

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


id: parallel\Events::addChannel
type: function
doc:
<comment>Description:</comment>
  Targets
  
  Shall watch for events on the given <strong>$channel</strong>

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


id: parallel\Events::addFuture
type: function
doc:
<comment>Description:</comment>
  Targets
  
  Shall watch for events on the given <strong>$future</strong>

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


id: parallel\Events::poll
type: function
doc:
<comment>Description:</comment>
  Polling
  
  Shall poll for the next event

<comment>Return:</comment>
  <info>Eventnull</info>  Should there be no targets remaining, null shall be returned
             
             Should this be a non-blocking loop, and blocking would occur, null shall be returned
             
             Otherwise, the <class>parallel\Events\Event</class> returned describes the event.


id: parallel\Events::remove
type: function
doc:
<comment>Description:</comment>
  Targets
  
  Shall remove the given <strong>$target</strong>

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


id: parallel\Events::setBlocking
type: function
doc:
<comment>Description:</comment>
  Behaviour
  
  By default when events are polled for, blocking will occur (at the PHP level) until the first
  event can be returned: Setting blocking mode to false will cause poll to return control if the
  first target polled is not ready.
  
  This differs from setting a timeout of 0 with parallel\Events::setTimeout, since a timeout of 0,
  while allowed, will cause an exception  to be raised, which may be extremely slow or wasteful if
  what is really desired is non-blocking behaviour.
  
  A non-blocking loop effects the return value of parallel\Events::poll, such that it may be null
  before all events have been processed.
  
  Shall set blocking mode

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


id: parallel\Events::setInput
type: function
doc:
<comment>Description:</comment>
  Input
  
  Shall set <strong>$input</strong> for this event loop

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


id: parallel\Events::setTimeout
type: function
doc:
<comment>Description:</comment>
  Behaviour
  
  By default when events are polled for, blocking will occur (at the PHP level) until the first
  event can be returned: Setting the timeout causes an exception to be thrown when the timeout is
  reached.
  
  This differs from setting blocking mode to false with parallel\Events::setBlocking, which will not
  cause an exception to be thrown.
  
  Shall set the timeout in microseconds

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


id: parallel\Events\Input::add
type: function
doc:
<comment>Description:</comment>
  Inputs
  
  Shall set input for the given target

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


id: parallel\Events\Input::clear
type: function
doc:
<comment>Description:</comment>
  Inputs
  
  Shall remove input for all targets

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


id: parallel\Events\Input::remove
type: function
doc:
<comment>Description:</comment>
  Inputs
  
  Shall remove input for the given target

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


id: parallel\Future::cancel
type: function
doc:
<comment>Description:</comment>
  Cancellation
  
  Shall try to cancel the task
  
  If task is running, it will be interrupted.
  
  Internal function calls in progress cannot be interrupted.

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


id: parallel\Future::cancelled
type: function
doc:
<comment>Description:</comment>
  State Detection
  
  Shall indicate if the task was cancelled

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


id: parallel\Future::done
type: function
doc:
<comment>Description:</comment>
  State Detection
  
  Shall indicate if the task is completed

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


id: parallel\Future::value
type: function
doc:
<comment>Description:</comment>
  Resolution
  
  Shall return (and if necessary wait for) return from task

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


id: parallel\Runtime::__construct
type: function
doc:
<comment>Description:</comment>
  Runtime Construction
  
  Shall construct a new runtime without bootstrapping.
  
  Shall construct a bootstrapped runtime.

<comment>Param:</comment>
  <info>string</info>  <strong>$bootstrap</strong>  The location of a bootstrap file, generally an autoloader.


id: parallel\Runtime::close
type: function
doc:
<comment>Description:</comment>
  Runtime Graceful Join
  
  Shall request that the runtime shutsdown.
  
  Tasks scheduled for execution will be executed before the shutdown occurs.

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


id: parallel\Runtime::kill
type: function
doc:
<comment>Description:</comment>
  Runtime Join
  
  Shall attempt to force the runtime to shutdown.
  
  Tasks scheduled for execution will not be executed, the currently running task shall be
  interrupted.
  
  Internal function calls in progress cannot be interrupted.

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


id: parallel\Runtime::run
type: function
doc:
<comment>Description:</comment>
  Execution
  
  Shall schedule <strong>$task</strong> for execution in parallel.
  
  Shall schedule <strong>$task</strong> for execution in parallel, passing <strong>$argv</strong> at execution time.

<comment>Param:</comment>
  <info>Closure</info>  <strong>$task</strong>  A <class>Closure</class> with specific characteristics.
  <info>array  </info>  <strong>$argv</strong>  An <info>array</info> of arguments with specific characteristics to be passed to <strong>$task</strong> at
                  execution time.

<comment>Return:</comment>
  <info>Futurenull</info>  The return <info>parallel\Future</info> must not be ignored when the task contains a return or
              throw statement.


id: parallel\Sync::__construct
type: function
doc:
<comment>Description:</comment>
  Construction
  
  Shall construct a new synchronization object with no value
  
  Shall construct a new synchronization object containing the given scalar value


id: parallel\Sync::__invoke
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Shall exclusively enter into the critical code


id: parallel\Sync::get
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall atomically return the syncrhonization objects value

<comment>Return:</comment>
  <info>scalar</info>  


id: parallel\Sync::notify
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Shall notify one (by default) or all threads waiting on the synchronization object


id: parallel\Sync::set
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall atomically set the value of the synchronization object


id: parallel\Sync::wait
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Shall wait for notification on this synchronization object


id: parallel\bootstrap
type: function
doc:
<comment>Description:</comment>
  Bootstrapping
  
  Shall use the provided <strong>$file</strong> to bootstrap all runtimes created for automatic scheduling via
  <strong>parallel\run()</strong>.

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

<comment>See Also:</comment>
   * 


id: parallel\run
type: function
doc:
<comment>Description:</comment>
  Execution
  
  Shall schedule <strong>$task</strong> for execution in parallel.
  
  Shall schedule <strong>$task</strong> for execution in parallel, passing <strong>$argv</strong> at execution time.

<comment>Param:</comment>
  <info>Closure</info>  <strong>$task</strong>  A <class>Closure</class> with specific characteristics.
  <info>array  </info>  <strong>$argv</strong>  An <info>array</info> of arguments with specific characteristics to be passed to <strong>$task</strong> at
                  execution time.

<comment>Return:</comment>
  <info>Futurenull</info>  The return <info>parallel\Future</info> must not be ignored when the task contains a return or
              throw statement.

<comment>See Also:</comment>
   * 


id: parse_ini_file
type: function
doc:
<comment>Description:</comment>
  Legge un file di configurazione
  
  <strong>parse_ini_file()</strong> carica il file ini specificato da <strong>$filename</strong>, e restituisce le impostazioni in
  esso in un array associativo.
  
  La struttura del file ini è la stessa del php.ini.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename        </strong>  Il nome del file ini da processare. Se viene utilizzato un percorso
                             relativo, viene valutato rispetto alla directory di lavoro corrente,
                             quindi l' include_path.
  <info>bool  </info>  <strong>$process_sections</strong>  Impostando il parametro <strong>$process_sections</strong> a <info>true</info>, si ottiene un array
                             multi-dimensionale con i nomi delle sezioni e le impostazioni incluse.
                             Per default <strong>$process_sections</strong> è impostato a <info>false</info>
  <info>int   </info>  <strong>$scanner_mode    </strong>  Può essere <info>INI_SCANNER_NORMAL</info> (default) o  <info>INI_SCANNER_RAW</info>. Se viene
                             fornito  <info>INI_SCANNER_RAW</info>, i valori delle opzioni non verranno
                             analizzati.
                             
                             As of PHP 5.6.1 can also be specified as <info>INI_SCANNER_TYPED</info>. In this
                             mode boolean, null and integer types are preserved when possible.
                             String values <return>"true"</return>, <return>"on"</return> and <return>"yes"</return> are converted to <info>true</info>. <return>"false"</return>,
                             <return>"off"</return>, <return>"no"</return> and <return>"none"</return> are considered <info>false</info>. <return>"null"</return> is converted to
                             <info>null</info> in typed mode. Also, all numeric strings are converted to integer
                             type if it is possible.

<comment>Return:</comment>
  <info>array</info>  Le impostazioni vengono restituite come un <info>array</info> associativo in caso di successo e <info>false</info> in
         caso di fallimento.

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


id: parse_ini_string
type: function
doc:
<comment>Description:</comment>
  Parse a configuration string
  
  <strong>parse_ini_string()</strong> returns the settings in string <strong>$ini_string</strong> in an associative array.
  
  The structure of the ini string is the same as the php.ini's.

<comment>Param:</comment>
  <info>string</info>  <strong>$ini_string      </strong>  The contents of the ini file being parsed.
  <info>bool  </info>  <strong>$process_sections</strong>  By setting the <strong>$process_sections</strong> parameter to <info>true</info>, you get a
                             multidimensional array, with the section names and settings included.
                             The default for <strong>$process_sections</strong> is <info>false</info>
  <info>int   </info>  <strong>$scanner_mode    </strong>  Can either be <info>INI_SCANNER_NORMAL</info> (default) or  <info>INI_SCANNER_RAW</info>. If
                             <info>INI_SCANNER_RAW</info>  is supplied, then option values will not be parsed.
                             
                             As of PHP 5.6.1 can also be specified as <info>INI_SCANNER_TYPED</info>. In this
                             mode boolean, null and integer types are preserved when possible.
                             String values <return>"true"</return>, <return>"on"</return> and <return>"yes"</return> are converted to <info>true</info>. <return>"false"</return>,
                             <return>"off"</return>, <return>"no"</return> and <return>"none"</return> are considered <info>false</info>. <return>"null"</return> is converted to
                             <info>null</info> in typed mode. Also, all numeric strings are converted to integer
                             type if it is possible.

<comment>Return:</comment>
  <info>arrayfalse</info>  The settings are returned as an associative <info>array</info> on success, and <info>false</info> on failure.

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


id: parse_url
type: function
doc:
<comment>Description:</comment>
  Parse a URL and return its components
  
  This function parses a URL and returns an associative array containing any of the various
  components of the URL that are present. The values of the array elements are not URL decoded.
  
  This function is not meant to validate the given URL, it only breaks it up into the above listed
  parts. Partial URLs are also accepted, <strong>parse_url()</strong> tries its best to parse them correctly.

<comment>Param:</comment>
  <info>string</info>  <strong>$url      </strong>  The URL to parse. Invalid characters are replaced by <return>_</return>.
  <info>int   </info>  <strong>$component</strong>  Specify one of <info>PHP_URL_SCHEME</info>, <info>PHP_URL_HOST</info>, <info>PHP_URL_PORT</info>, <info>PHP_URL_USER</info>,
                      <info>PHP_URL_PASS</info>, <info>PHP_URL_PATH</info>, <info>PHP_URL_QUERY</info> or <info>PHP_URL_FRAGMENT</info> to retrieve just
                      a specific URL component as a <info>string</info> (except when <info>PHP_URL_PORT</info> is given, in
                      which case the return value will be an <info>int</info>).

<comment>Return:</comment>
  <info>mixed</info>  On seriously malformed URLs, <strong>parse_url()</strong> may return <info>false</info>.
         
         If the <strong>$component</strong> parameter is omitted, an associative <info>array</info> is returned. At least one
         element will be present within the array. Potential keys within this array are: scheme -
         e.g. http hostportuserpasspathquery - after the question mark <return>?</return> fragment - after the
         hashmark <return>#</return>
         
         scheme - e.g. http
         
         host
         
         port
         
         user
         
         pass
         
         path
         
         query - after the question mark <return>?</return>
         
         fragment - after the hashmark <return>#</return>
         
         If the <strong>$component</strong> parameter is specified, <strong>parse_url()</strong> returns a <info>string</info> (or an <info>int</info>, in the
         case of <info>PHP_URL_PORT</info>) instead of an <info>array</info>. If the requested component doesn't exist within
         the given URL, <info>null</info> will be returned.

<comment>See Also:</comment>
   * <strong>pathinfo()</strong>
   * <strong>parse_str()</strong>
   * <strong>http_build_query()</strong>
   * <strong>dirname()</strong>
   * <strong>basename()</strong>
   * RFC 3986


id: passthru
type: function
doc:
<comment>Description:</comment>
  Esegue un programma esterno e mostra l'output non elaborato
  
  La funzione <strong>passthru()</strong> è simile alla funzione <strong>exec()</strong> in quanto esegue un <strong>$command</strong>. Questa funzione
  deve essere usata al posto di <strong>exec()</strong> o di <strong>system()</strong> quando l'output del comando Unix consiste in
  dati binari che devono essere restituiti direttamente al browser.  Un suo uso frequente consiste
  nell'eseguire, ad esempio, le utility  pbmplus che possono restituire un flusso diretto
  all'immagine. Impostando il Content-type a image/gif e successivamente chiamando un programma
  pbmplus per generare una gif, si possono creare degli script PHP che generano direttamente delle
  immagini.

<comment>Param:</comment>
  <info>string</info>  <strong>$command   </strong>  Il comando che verrà eseguito.
  <info>int   </info>  <strong>$return_var</strong>  Se viene specificato il parametro <strong>$return_var</strong>, lo stato ritornato dal comando
                       Unix verrà posto lì.

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.

<comment>See Also:</comment>
   * <strong>exec()</strong>
   * <strong>system()</strong>
   * <strong>popen()</strong>
   * <strong>escapeshellcmd()</strong>
   * l'operatore backtick


id: password_algos
type: function
doc:
<comment>Description:</comment>
  Get available password hashing algorithm IDs
  
  Returns a complete list of all registered password hashing algorithm IDs as an <info>array</info> of <info>string</info>s.

<comment>Return:</comment>
  <info>array</info>  Returns the available password hashing algorithm IDs.


id: password_get_info
type: function
doc:
<comment>Description:</comment>
  Returns information about the given hash
  
  When passed in a valid hash created by an algorithm supported by <strong>password_hash()</strong>, this function
  will return an array of information about that hash.

<comment>Param:</comment>
  <info>string</info>  <strong>$hash</strong>  Un hash creato da <strong>password_hash()</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns an associative array with three elements:  <return>algo</return>, which will match a password
         algorithm constant<return>algoName</return>, which has the human readable name of the algorithm <return>options</return>,
         which includes the options provided when calling <strong>password_hash()</strong>
         
         <return>algo</return>, which will match a password algorithm constant
         
         <return>algoName</return>, which has the human readable name of the algorithm
         
         <return>options</return>, which includes the options provided when calling <strong>password_hash()</strong>


id: password_hash
type: function
doc:
<comment>Description:</comment>
  Creates a password hash
  
  <strong>password_hash()</strong> creates a new password hash using a strong one-way hashing algorithm.
  <strong>password_hash()</strong> is compatible with <strong>crypt()</strong>. Therefore, password hashes created by <strong>crypt()</strong> can be
  used with <strong>password_hash()</strong>.
  
  The following algorithms are currently supported:
  
  <info>PASSWORD_DEFAULT</info> - Use the bcrypt algorithm (default as of PHP 5.5.0). Note that this constant is
  designed to change over time as new and stronger algorithms are added to PHP. For that reason, the
  length of the result from using this identifier can change over time. Therefore, it is recommended
  to store the result in a database column that can expand beyond 60 characters (255 characters
  would be a good choice). <info>PASSWORD_BCRYPT</info> - Use the <info>CRYPT_BLOWFISH</info> algorithm to create the hash.
  This will produce a standard <strong>crypt()</strong> compatible hash using the "$2y$" identifier. The result will
  always be a 60 character string,  o <info>false</info> in caso di fallimento. <info>PASSWORD_ARGON2I</info> - Use the
  Argon2i hashing algorithm to create the hash. This algorithm is only available if PHP has been
  compiled with Argon2 support. <info>PASSWORD_ARGON2ID</info> - Use the Argon2id hashing algorithm to create the
  hash. This algorithm is only available if PHP has been compiled with Argon2 support.
  
  <info>PASSWORD_DEFAULT</info> - Use the bcrypt algorithm (default as of PHP 5.5.0). Note that this constant is
  designed to change over time as new and stronger algorithms are added to PHP. For that reason, the
  length of the result from using this identifier can change over time. Therefore, it is recommended
  to store the result in a database column that can expand beyond 60 characters (255 characters
  would be a good choice).
  
  <info>PASSWORD_BCRYPT</info> - Use the <info>CRYPT_BLOWFISH</info> algorithm to create the hash. This will produce a
  standard <strong>crypt()</strong> compatible hash using the "$2y$" identifier. The result will always be a 60
  character string,  o <info>false</info> in caso di fallimento.
  
  <info>PASSWORD_ARGON2I</info> - Use the Argon2i hashing algorithm to create the hash. This algorithm is only
  available if PHP has been compiled with Argon2 support.
  
  <info>PASSWORD_ARGON2ID</info> - Use the Argon2id hashing algorithm to create the hash. This algorithm is only
  available if PHP has been compiled with Argon2 support.
  
  Supported options for <info>PASSWORD_BCRYPT</info>:
  
  <return>salt</return> (<info>string</info>) - to manually provide a salt to use when hashing the password. Note that this will
  override and prevent a salt from being automatically generated.  If omitted, a random salt will be
  generated by <strong>password_hash()</strong> for each password hashed. This is the intended mode of operation.
  The salt option has been deprecated as of PHP 7.0.0. It is now preferred to simply use the salt
  that is generated by default. <return>cost</return> (<info>int</info>) - which denotes the algorithmic cost that should be used.
  Examples of these values can be found on the <strong>crypt()</strong> page.  If omitted, a default value of <return>10</return> will
  be used. This is a good baseline cost, but you may want to consider increasing it depending on
  your hardware.
  
  <return>salt</return> (<info>string</info>) - to manually provide a salt to use when hashing the password. Note that this will
  override and prevent a salt from being automatically generated.
  
  If omitted, a random salt will be generated by <strong>password_hash()</strong> for each password hashed. This is
  the intended mode of operation.
  
  The salt option has been deprecated as of PHP 7.0.0. It is now preferred to simply use the salt
  that is generated by default.
  
  <return>cost</return> (<info>int</info>) - which denotes the algorithmic cost that should be used.  Examples of these values can
  be found on the <strong>crypt()</strong> page.
  
  If omitted, a default value of <return>10</return> will be used. This is a good baseline cost, but you may want to
  consider increasing it depending on your hardware.
  
  Supported options for <info>PASSWORD_ARGON2I</info> and <info>PASSWORD_ARGON2ID</info>:
  
  <return>memory_cost</return> (<info>int</info>) - Maximum memory (in kibibytes) that may  be used to compute the Argon2 hash.
  Defaults to <info>PASSWORD_ARGON2_DEFAULT_MEMORY_COST</info>. <return>time_cost</return> (<info>int</info>) - Maximum amount of time it may
  take to compute the Argon2 hash. Defaults to <info>PASSWORD_ARGON2_DEFAULT_TIME_COST</info>. <return>threads</return> (<info>int</info>) -
  Number of threads to use for computing  the Argon2 hash. Defaults to
  <info>PASSWORD_ARGON2_DEFAULT_THREADS</info>.
  
  <return>memory_cost</return> (<info>int</info>) - Maximum memory (in kibibytes) that may  be used to compute the Argon2 hash.
  Defaults to <info>PASSWORD_ARGON2_DEFAULT_MEMORY_COST</info>.
  
  <return>time_cost</return> (<info>int</info>) - Maximum amount of time it may  take to compute the Argon2 hash. Defaults to
  <info>PASSWORD_ARGON2_DEFAULT_TIME_COST</info>.
  
  <return>threads</return> (<info>int</info>) - Number of threads to use for computing  the Argon2 hash. Defaults to
  <info>PASSWORD_ARGON2_DEFAULT_THREADS</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  La password dell'utente.
                     
                     Using the <info>PASSWORD_BCRYPT</info> as the algorithm, will result in the <strong>$password</strong>
                     parameter being truncated to a maximum length of 72 characters.
  <info>mixed </info>  <strong>$algo    </strong>  Una costante per l'algoritmo della password che stabilisce l'algoritmo da
                     utilizzare quando si effettua l'hashing della password.
  <info>array </info>  <strong>$options </strong>  Un array associativo che contiene opzioni. Attualmente, sono accettate due
                     opzioni: <return>salt</return>, per fornire un sale da usare al momento dell'hashing della
                     password, e <return>cost</return>, che stabilisce il costo algoritmico che deve essere
                     utilizzato. Degli esempi di questi valori si trovano alla pagina <strong>crypt()</strong>.
                     
                     If omitted, a random salt will be created and the default cost will be used.

<comment>Return:</comment>
  <info>stringfalse</info>  Returns the hashed password,  o <info>false</info> in caso di fallimento.
               
               The used algorithm, cost and salt are returned as part of the hash. Therefore, all
               information that's needed to verify the hash is included in it. This allows the
               <strong>password_verify()</strong> function to verify the hash without needing separate storage for
               the salt or algorithm information.

<comment>See Also:</comment>
   * <strong>password_verify()</strong>
   * <strong>crypt()</strong>
   * userland implementation
   * <strong>sodium_crypto_pwhash_str()</strong>


id: password_needs_rehash
type: function
doc:
<comment>Description:</comment>
  Checks if the given hash matches the given options
  
  This function checks to see if the supplied hash implements the algorithm and options provided. If
  not, it is assumed that the hash needs to be rehashed.

<comment>Param:</comment>
  <info>string</info>  <strong>$hash   </strong>  Un hash creato da <strong>password_hash()</strong>.
  <info>mixed </info>  <strong>$algo   </strong>  Una costante per l'algoritmo della password che stabilisce l'algoritmo da
                    utilizzare quando si effettua l'hashing della password.
  <info>array </info>  <strong>$options</strong>  Un array associativo che contiene opzioni. Attualmente, sono accettate due
                    opzioni: <return>salt</return>, per fornire un sale da usare al momento dell'hashing della
                    password, e <return>cost</return>, che stabilisce il costo algoritmico che deve essere
                    utilizzato. Degli esempi di questi valori si trovano alla pagina <strong>crypt()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the hash should be rehashed to match the given <strong>$algo</strong> and <strong>$options</strong>, or <info>false</info>
        otherwise.


id: password_verify
type: function
doc:
<comment>Description:</comment>
  Verifies that a password matches a hash
  
  Verifies that the given hash matches the given password.
  
  Note that <strong>password_hash()</strong> returns the algorithm, cost and salt  as part of the returned hash.
  Therefore, all information that's needed to verify the hash is included in it. This allows the
  verify function to verify the hash without needing separate storage for the salt or algorithm
  information.
  
  This function is safe against timing attacks.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  La password dell'utente.
  <info>string</info>  <strong>$hash    </strong>  Un hash creato da <strong>password_hash()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the password and hash match, or <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>password_hash()</strong>
   * userland implementation
   * <strong>sodium_crypto_pwhash_str_verify()</strong>


id: pcntl_alarm
type: function
doc:
<comment>Description:</comment>
  Set an alarm clock for delivery of a signal
  
  Creates a timer that will send a <info>SIGALRM</info> signal to the process after the given number of seconds.
  Any call to <strong>pcntl_alarm()</strong> will cancel any previously set alarm.

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>  The number of seconds to wait. If <strong>$seconds</strong> is zero, no new alarm is created.

<comment>Return:</comment>
  <info>int</info>  Returns the time in seconds that any previously scheduled alarm had remaining before it was
       to be delivered, or <return>0</return> if there was no previously scheduled alarm.


id: pcntl_async_signals
type: function
doc:
<comment>Description:</comment>
  Enable/disable asynchronous signal handling or return the old setting
  
  If the <strong>$on</strong> parameter is omitted, <strong>pcntl_async_signals()</strong> returns whether asynchronous signal
  handling is enabled. Otherwise, asynchronous signal handling is enabled or disabled.

<comment>Param:</comment>
  <info>bool</info>  <strong>$on</strong>  Whether asynchronous signal handling should be enabled.

<comment>Return:</comment>
  <info>bool</info>  When used as getter (that is without the optional parameter) it returns whether asynchronous
        signal handling is enabled. When used as setter (that is with the optional parameter given),
        it returns whether asynchronous signal handling was enabled before the function call.

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


id: pcntl_errno
type: function
doc:
<comment>Description:</comment>
  Alias di pcntl_get_last_error
  
  Questa funzione è sinonimo di:  <strong>pcntl_get_last_error()</strong>


id: pcntl_exec
type: function
doc:
<comment>Description:</comment>
  Executes specified program in current process space
  
  Executes the program with the given arguments.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>  <strong>$path</strong> must be the path to a binary executable or a script with a valid path
                 pointing to an executable in the shebang ( #!/usr/local/bin/perl for example) as
                 the first line.  See your system's man execve(2) page for additional information.
  <info>array </info>  <strong>$args</strong>  <strong>$args</strong> is an array of argument strings passed to the program.
  <info>array </info>  <strong>$envs</strong>  <strong>$envs</strong> is an array of strings which are passed as environment to the program.  The
                 array is in the format of name =&gt; value, the key being the name of the
                 environmental variable and the value being the value of that variable.

<comment>Return:</comment>
  <info>void</info>  Returns <info>null</info> on success o <info>false</info> in caso di fallimento.


id: pcntl_fork
type: function
doc:
<comment>Description:</comment>
  Forks the currently running process
  
  The <strong>pcntl_fork()</strong> function creates a child process that differs from the parent process only in its
  PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works
  on your system.

<comment>Return:</comment>
  <info>int</info>  On success, the PID of the child process is returned in the parent's thread of execution, and
       a 0 is returned in the child's thread of execution.  On failure, a -1 will be returned in the
       parent's context, no child process will be created, and a PHP error is raised.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>setproctitle()</strong>


id: pcntl_get_last_error
type: function
doc:
<comment>Description:</comment>
  Retrieve the error number set by the last pcntl function which failed
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

<comment>Return:</comment>
  <info>int</info>  Returns error code.

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


id: pcntl_getpriority
type: function
doc:
<comment>Description:</comment>
  Get the priority of any process
  
  <strong>pcntl_getpriority()</strong> gets the priority of <strong>$pid</strong>. Because priority levels can differ between system
  types and kernel versions, please see your system's getpriority(2) man page for specific details.

<comment>Param:</comment>
  <info>int</info>  <strong>$pid               </strong>  If not specified, the pid of the current process is used.
  <info>int</info>  <strong>$process_identifier</strong>  One of <info>PRIO_PGRP</info>, <info>PRIO_USER</info> or <info>PRIO_PROCESS</info>.

<comment>Return:</comment>
  <info>int</info>  <strong>pcntl_getpriority()</strong> returns the priority of the process or <info>false</info> on error.  A lower numerical
       value causes more favorable scheduling.
       
       Questa funzione può
       restituire il Booleano <info>false</info>, ma può anche restituire un valore non-Booleano valutato
       come <info>false</info>. Fare riferimento alla sezione Booleans per maggiori 
       informazioni. Usare l'operatore ===
        per controllare il valore restituito da questa 
       funzione.

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


id: pcntl_setpriority
type: function
doc:
<comment>Description:</comment>
  Change the priority of any process
  
  <strong>pcntl_setpriority()</strong> sets the priority of <strong>$pid</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$priority          </strong>  <strong>$priority</strong> is generally a value in the range <return>-20</return> to <return>20</return>. The default
                            priority is <return>0</return> while a lower numerical value causes more favorable
                            scheduling.  Because priority levels can differ between system types and
                            kernel versions, please see your system's setpriority(2) man page for
                            specific details.
  <info>int</info>  <strong>$pid               </strong>  If not specified, the pid of the current process is used.
  <info>int</info>  <strong>$process_identifier</strong>  One of <info>PRIO_PGRP</info>, <info>PRIO_USER</info> or <info>PRIO_PROCESS</info>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: pcntl_signal
type: function
doc:
<comment>Description:</comment>
  Installs a signal handler
  
  The <strong>pcntl_signal()</strong> function installs a new signal handler or replaces the current signal handler
  for the signal indicated by <strong>$signo</strong>.

<comment>Param:</comment>
  <info>int        </info>  <strong>$signo           </strong>  The signal number.
  <info>callableint</info>  <strong>$handler         </strong>  The signal handler. This may be either a <info>callable</info>, which will be
                                  invoked to handle the signal, or either of the two global
                                  constants <info>SIG_IGN</info> or <info>SIG_DFL</info>, which will ignore the signal or
                                  restore the default signal handler respectively.
                                  
                                  If a <info>callable</info> is given, it must implement the following signature:
                                  
                                  <info>void</info>handler<info>int</info><strong>$signo</strong><info>mixed</info><strong>$siginfo</strong><strong>$signo</strong> The signal being handled.
                                  <strong>$siginfo</strong> If operating systems supports siginfo_t structures, this
                                  will be an array of signal information dependent on the signal.
                                  
                                  The signal being handled.
                                  
                                  If operating systems supports siginfo_t structures, this will be
                                  an array of signal information dependent on the signal.
                                  
                                  Note that when you set a handler to an object method, that
                                  object's reference count is increased which makes it persist until
                                  you either change the handler to something else, or your script
                                  ends.
  <info>int        </info>  <strong>$signo           </strong>  The signal being handled.
  <info>mixed      </info>  <strong>$siginfo         </strong>  If operating systems supports siginfo_t structures, this will be
                                  an array of signal information dependent on the signal.
  <info>bool       </info>  <strong>$restart_syscalls</strong>  Specifies whether system call restarting should be used when this
                                  signal arrives.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_waitpid()</strong>


id: pcntl_signal_dispatch
type: function
doc:
<comment>Description:</comment>
  Calls signal handlers for pending signals
  
  The <strong>pcntl_signal_dispatch()</strong> function calls the signal  handlers installed by <strong>pcntl_signal()</strong> for
  each pending signal.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_sigprocmask()</strong>
   * <strong>pcntl_sigwaitinfo()</strong>
   * <strong>pcntl_sigtimedwait()</strong>


id: pcntl_signal_get_handler
type: function
doc:
<comment>Description:</comment>
  Get the current handler for specified signal
  
  The <strong>pcntl_signal_get_handler()</strong> function will get the current handler for the specified <strong>$signo</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$signo</strong>  The signal number.

<comment>Return:</comment>
  <info>mixed</info>  This function may return an integer value that refers to <info>SIG_DFL</info> or <info>SIG_IGN</info>.  If you set a
         custom handler a string value containing the function name is returned.

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


id: pcntl_sigprocmask
type: function
doc:
<comment>Description:</comment>
  Sets and retrieves blocked signals
  
  The <strong>pcntl_sigprocmask()</strong> function adds, removes or sets blocked signals, depending on the <strong>$how</strong>
  parameter.

<comment>Param:</comment>
  <info>int  </info>  <strong>$how   </strong>  Sets the behavior of <strong>pcntl_sigprocmask()</strong>. Possible values:  <info>SIG_BLOCK</info>: Add the
                  signals to the currently blocked signals.<info>SIG_UNBLOCK</info>: Remove the signals from the
                  currently blocked signals.<info>SIG_SETMASK</info>: Replace the currently blocked signals by
                  the given list of signals.
  <info>array</info>  <strong>$set   </strong>  List of signals.
  <info>array</info>  <strong>$oldset</strong>  The <strong>$oldset</strong> parameter is set to an array containing the list of the previously
                  blocked signals.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>pcntl_sigwaitinfo()</strong>
   * <strong>pcntl_sigtimedwait()</strong>


id: pcntl_sigtimedwait
type: function
doc:
<comment>Description:</comment>
  Waits for signals, with a timeout
  
  The <strong>pcntl_sigtimedwait()</strong> function operates in exactly the same way as <strong>pcntl_sigwaitinfo()</strong> except
  that it takes two additional parameters, <strong>$seconds</strong> and <strong>$nanoseconds</strong>, which enable an upper bound to
  be placed on the time for which the script is suspended.

<comment>Param:</comment>
  <info>array</info>  <strong>$set        </strong>  Array of signals to wait for.
  <info>array</info>  <strong>$siginfo    </strong>  The <strong>$siginfo</strong> is set to an array containing information about the signal. See
                       <strong>pcntl_sigwaitinfo()</strong>.
  <info>int  </info>  <strong>$seconds    </strong>  Timeout in seconds.
  <info>int  </info>  <strong>$nanoseconds</strong>  Timeout in nanoseconds.

<comment>Return:</comment>
  <info>int</info>  On success, <strong>pcntl_sigtimedwait()</strong> returns a signal number.

<comment>See Also:</comment>
   * <strong>pcntl_sigprocmask()</strong>
   * <strong>pcntl_sigwaitinfo()</strong>


id: pcntl_sigwaitinfo
type: function
doc:
<comment>Description:</comment>
  Waits for signals
  
  The <strong>pcntl_sigwaitinfo()</strong> function suspends execution of the calling script until one of the signals
  given in <strong>$set</strong> are delivered. If one of the signal is already pending (e.g. blocked by
  <strong>pcntl_sigprocmask()</strong>), <strong>pcntl_sigwaitinfo()</strong> will return immediately.

<comment>Param:</comment>
  <info>array</info>  <strong>$set    </strong>  Array of signals to wait for.
  <info>array</info>  <strong>$siginfo</strong>  The <strong>$siginfo</strong> parameter is set to an array containing information about the
                   signal.
                   
                   The following elements are set for all signals: signo: Signal numbererrno: An
                   error numbercode: Signal code
                   
                   The following elements may be set for the <info>SIGCHLD</info> signal: status: Exit value or
                   signalutime: User time consumedstime: System time consumedpid: Sending process
                   IDuid: Real user ID of sending process
                   
                   The following elements may be set for the <info>SIGILL</info>, <info>SIGFPE</info>, <info>SIGSEGV</info> and <info>SIGBUS</info>
                   signals: addr: Memory location which caused fault
                   
                   The following element may be set for the <info>SIGPOLL</info> signal: band: Band eventfd: File
                   descriptor number

<comment>Return:</comment>
  <info>int</info>  On success, <strong>pcntl_sigwaitinfo()</strong> returns a signal number.

<comment>See Also:</comment>
   * <strong>pcntl_sigprocmask()</strong>
   * <strong>pcntl_sigtimedwait()</strong>


id: pcntl_strerror
type: function
doc:
<comment>Description:</comment>
  Retrieve the system error message associated with the given errno
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

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

<comment>Return:</comment>
  <info>stringfalse</info>  Returns error description on success o <info>false</info> in caso di fallimento.

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


id: pcntl_wait
type: function
doc:
<comment>Description:</comment>
  Waits on or returns the status of a forked child
  
  The wait function suspends execution of the current process until a child has exited, or until a
  signal is delivered whose action is to terminate the current process or to call a signal handling
  function.  If a child has already exited by the time of the call (a so-called "zombie" process),
  the function returns immediately.  Any system resources used by the child are freed.  Please see
  your system's wait(2) man page for specific details as to how wait works on your system.
  
  This function is equivalent to calling <strong>pcntl_waitpid()</strong> with a <return>-1</return> <strong>$pid</strong> and no <strong>$options</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status </strong>  <strong>pcntl_wait()</strong> will store status information in the <strong>$status</strong> parameter which can be
                 evaluated using the following functions: <strong>pcntl_wifexited()</strong>, <strong>pcntl_wifstopped()</strong>,
                 <strong>pcntl_wifsignaled()</strong>, <strong>pcntl_wexitstatus()</strong>, <strong>pcntl_wtermsig()</strong> and <strong>pcntl_wstopsig()</strong>.
  <info>int</info>  <strong>$options</strong>  If wait3 is available on your system (mostly BSD-style systems), you can provide
                 the optional <strong>$options</strong> parameter.  If this parameter is not provided, wait will be
                 used for the system call.  If wait3 is not available, providing a value for
                 <strong>$options </strong> will have no effect. The value of <strong>$options </strong> is the value of zero or more
                 of the following two constants <return>OR</return>'ed together: Possible values for <strong>$options</strong><return>WNOHANG</return>
                 Return immediately if no child has exited. <return>WUNTRACED</return> Return for children which are
                 stopped, and whose status has not been reported.

<comment>Return:</comment>
  <info>int</info>  <strong>pcntl_wait()</strong> returns the process ID of the child which exited, -1 on error or zero if WNOHANG
       was provided as an option (on wait3-available systems) and no child was available.

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_wifexited()</strong>
   * <strong>pcntl_wifstopped()</strong>
   * <strong>pcntl_wifsignaled()</strong>
   * <strong>pcntl_wexitstatus()</strong>
   * <strong>pcntl_wtermsig()</strong>
   * <strong>pcntl_wstopsig()</strong>
   * <strong>pcntl_waitpid()</strong>


id: pcntl_waitpid
type: function
doc:
<comment>Description:</comment>
  Waits on or returns the status of a forked child
  
  Suspends execution of the current process until a child as specified by the <strong>$pid</strong> argument has
  exited, or until a signal is delivered whose action is to terminate the current process or to call
  a signal handling function.
  
  If a child as requested by <strong>$pid</strong> has already exited by the time of the call (a so-called "zombie"
  process), the function returns immediately.  Any system resources used by the child are freed.
  Please see your system's waitpid(2) man page for specific details as to how waitpid works on your
  system.

<comment>Param:</comment>
  <info>int</info>  <strong>$pid    </strong>  The value of <strong>$pid</strong> can be one of the following: possible values for <strong>$pid</strong><return>\< -1</return> wait
                 for any child process whose process group ID is equal to the absolute value of
                 <strong>$pid</strong>. <return>-1</return> wait for any child process; this is the same behaviour that the wait
                 function exhibits. <return>0</return> wait for any child process whose process group ID is equal to
                 that of the calling process. <return>&gt; 0</return> wait for the child whose process ID is equal to
                 the value of <strong>$pid</strong>.
                 
                 Specifying <return>-1</return> as the <strong>$pid</strong> is equivalent to the functionality <strong>pcntl_wait()</strong> provides
                 (minus <strong>$options</strong>).
  <info>int</info>  <strong>$status </strong>  <strong>pcntl_waitpid()</strong> will store status information in the <strong>$status</strong> parameter which can be
                 evaluated using the following functions: <strong>pcntl_wifexited()</strong>, <strong>pcntl_wifstopped()</strong>,
                 <strong>pcntl_wifsignaled()</strong>, <strong>pcntl_wexitstatus()</strong>, <strong>pcntl_wtermsig()</strong> and <strong>pcntl_wstopsig()</strong>.
  <info>int</info>  <strong>$options</strong>  The value of <strong>$options</strong> is the value of zero or more of the following two global
                 constants <return>OR</return>'ed together: possible values for <strong>$options</strong><return>WNOHANG</return> return immediately if
                 no child has exited. <return>WUNTRACED</return> return for children which are stopped, and whose
                 status has not been reported.

<comment>Return:</comment>
  <info>int</info>  <strong>pcntl_waitpid()</strong> returns the process ID of the child which exited, -1 on error or zero if
       <info>WNOHANG</info> was used and no child was available

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_wifexited()</strong>
   * <strong>pcntl_wifstopped()</strong>
   * <strong>pcntl_wifsignaled()</strong>
   * <strong>pcntl_wexitstatus()</strong>
   * <strong>pcntl_wtermsig()</strong>
   * <strong>pcntl_wstopsig()</strong>


id: pcntl_wexitstatus
type: function
doc:
<comment>Description:</comment>
  Returns the return code of a terminated child
  
  Returns the return code of a terminated child.  This function is only useful if <strong>pcntl_wifexited()</strong>
  returned <info>true</info>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  Il parametro 
                <strong>$status</strong> è il parametro di stato fornito ad una chiamata 
                riuscita a <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the return code, as an integer.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_wifexited()</strong>


id: pcntl_wifexited
type: function
doc:
<comment>Description:</comment>
  Checks if status code represents a normal exit
  
  Checks whether the child status code represents a normal exit.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  Il parametro 
                <strong>$status</strong> è il parametro di stato fornito ad una chiamata 
                riuscita a <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the child status code represents a normal exit, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_wexitstatus()</strong>


id: pcntl_wifsignaled
type: function
doc:
<comment>Description:</comment>
  Checks whether the status code represents a termination due to a signal
  
  Checks whether the child process exited because of a signal which was not caught.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  Il parametro 
                <strong>$status</strong> è il parametro di stato fornito ad una chiamata 
                riuscita a <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the child process exited because of a signal which was not caught, <info>false</info>
        otherwise.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>


id: pcntl_wifstopped
type: function
doc:
<comment>Description:</comment>
  Checks whether the child process is currently stopped
  
  Checks whether the child process which caused the return is currently stopped; this is only
  possible if the call to <strong>pcntl_waitpid()</strong> was done using the option <return>WUNTRACED</return>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  Il parametro 
                <strong>$status</strong> è il parametro di stato fornito ad una chiamata 
                riuscita a <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the child process which caused the return is currently stopped, <info>false</info>
        otherwise.

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


id: pcntl_wstopsig
type: function
doc:
<comment>Description:</comment>
  Returns the signal which caused the child to stop
  
  Returns the number of the signal which caused the child to stop. This function is only useful if
  <strong>pcntl_wifstopped()</strong> returned <info>true</info>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  Il parametro 
                <strong>$status</strong> è il parametro di stato fornito ad una chiamata 
                riuscita a <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the signal number.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_wifstopped()</strong>


id: pcntl_wtermsig
type: function
doc:
<comment>Description:</comment>
  Returns the signal which caused the child to terminate
  
  Returns the number of the signal that caused the child process to terminate. This function is only
  useful if <strong>pcntl_wifsignaled()</strong> returned <info>true</info>.

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  Il parametro 
                <strong>$status</strong> è il parametro di stato fornito ad una chiamata 
                riuscita a <strong>pcntl_waitpid()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the signal number, as an integer.

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_wifsignaled()</strong>


id: pfsockopen
type: function
doc:
<comment>Description:</comment>
  Apre una connessione persistente Internet o di tipo domain socket Unix


id: pg_connect_poll
type: function
doc:
<comment>Description:</comment>
  Poll the status of an in-progress asynchronous PostgreSQL connection
     attempt
    
  
  <strong>pg_connect_poll()</strong> polls the status of a PostgreSQL connection created by calling <strong>pg_connect()</strong> with
  the <info>PGSQL_CONNECT_ASYNC</info> option.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.

<comment>Return:</comment>
  <info>int</info>  Returns <info>PGSQL_POLLING_FAILED</info>, <info>PGSQL_POLLING_READING</info>, <info>PGSQL_POLLING_WRITING</info>, <info>PGSQL_POLLING_OK</info>,
       or <info>PGSQL_POLLING_ACTIVE</info>.


id: pg_consume_input
type: function
doc:
<comment>Description:</comment>
  Reads input on the connection
  
  <strong>pg_consume_input()</strong> consumes any input waiting to be read from the database server.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if no error occurred, or <info>false</info> if there was an error. Note that <info>true</info> does not
        necessarily indicate that input was waiting to be read.


id: pg_convert
type: function
doc:
<comment>Description:</comment>
  Converte i valori di un array associativo in una forma compatibile con i comandi SQL.


id: pg_escape_identifier
type: function
doc:
<comment>Description:</comment>
  Escape a identifier for insertion into a text field
    
  
  <strong>pg_escape_identifier()</strong> escapes a identifier (e.g. table, field names) for querying the database.
  It returns an escaped identifier string for PostgreSQL server. <strong>pg_escape_identifier()</strong> adds double
  quotes before and after data. Users should not add double quotes. Use of this function is
  recommended for identifier parameters in query. For SQL literals (i.e. parameters except bytea),
  <strong>pg_escape_literal()</strong> or <strong>pg_escape_string()</strong> must be used. For bytea type fields, <strong>pg_escape_bytea()</strong>
  must be used instead.
  
  This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.  When  <strong>$connection</strong> is not present,
                         the default connection  is used. The default connection is the last
                         connection made by  <strong>pg_connect()</strong> or <strong>pg_pconnect()</strong>.
  <info>string  </info>  <strong>$data      </strong>  A <info>string</info> containing text to be escaped.

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

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


id: pg_escape_literal
type: function
doc:
<comment>Description:</comment>
  Escape a literal for insertion into a text field
    
  
  <strong>pg_escape_literal()</strong> escapes a literal for querying the PostgreSQL database. It returns an escaped
  literal in the PostgreSQL format. <strong>pg_escape_literal()</strong> adds quotes before and after data. Users
  should not add quotes. Use of this function is recommended instead of <strong>pg_escape_string()</strong>.  If the
  type of the column is bytea, <strong>pg_escape_bytea()</strong> must be used instead. For escaping identifiers
  (e.g. table, field names), <strong>pg_escape_identifier()</strong> must be used.
  
  This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.  When  <strong>$connection</strong> is not present,
                         the default connection  is used. The default connection is the last
                         connection made by  <strong>pg_connect()</strong> or <strong>pg_pconnect()</strong>. When there is no default
                         connection, it raises <return>E_WARNING</return> and returns <info>false</info>.
  <info>string  </info>  <strong>$data      </strong>  A <info>string</info> containing text to be escaped.

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

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


id: pg_execute
type: function
doc:
<comment>Description:</comment>
  Sends a request to execute a prepared statement with given parameters, and waits for the result
  
  Sends a request to execute a prepared statement with given parameters, and  waits for the result.
  
  <strong>pg_execute()</strong> is like <strong>pg_query_params()</strong>,  but the command to be executed is  specified by naming a
  previously-prepared statement, instead of giving a  query string. This feature allows commands
  that will be used repeatedly to  be parsed and planned just once, rather than each time they are
  executed.  The statement must have been prepared previously in the current session.  <strong>pg_execute()</strong>
  is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier
  versions.
  
  The parameters are identical to <strong>pg_query_params()</strong>, except that the name of a  prepared statement
  is given instead of a query string.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.  When  <strong>$connection</strong> is not present,
                         the default connection  is used. The default connection is the last
                         connection made by  <strong>pg_connect()</strong> or <strong>pg_pconnect()</strong>.
  <info>string  </info>  <strong>$stmtname  </strong>  The name of the prepared statement to execute.  if "" is specified, then
                         the unnamed statement is executed.  The name must have been previously
                         prepared using <strong>pg_prepare()</strong>,  <strong>pg_send_prepare()</strong> or a <return>PREPARE</return> SQL command.
  <info>array   </info>  <strong>$params    </strong>  An array of parameter values to substitute for the $1, $2, etc.
                         placeholders in the original prepared query string.  The number of elements
                         in the array must match the number of placeholders.
                         
                         Elements are converted to strings by calling this function.

<comment>Return:</comment>
  <info>resourcefalse</info>  A query result resource on success o <info>false</info> in caso di fallimento.

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


id: pg_fetch_all_columns
type: function
doc:
<comment>Description:</comment>
  Fetches all rows in a particular result column as an array
  
  <strong>pg_fetch_all_columns()</strong> returns an array that contains all rows (records) in a particular column of
  the result resource.
  
  Questa funzione imposta i campio NULL al
  valore PHP <info>null</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  PostgreSQL query result resource, returned by <strong>pg_query()</strong>, <strong>pg_query_params()</strong> or
                     <strong>pg_execute()</strong> (among others).
  <info>int     </info>  <strong>$column</strong>  Column number, zero-based, to be retrieved from the result resource.  Defaults
                     to the first column if not specified.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> with all values in the result column.
         
         <info>false</info> is returned if <strong>$column</strong> is larger than the number  of columns in the result, or on any
         other error.

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


id: pg_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  Recupera una riga come array associativo
  
  <strong>pg_fetch_assoc()</strong> restituisce un array associativo che corrisponde alla riga (record) recuperata.
  
  <strong>pg_fetch_assoc()</strong> è equivalente a chiamare <strong>pg_fetch_array()</strong> con <info>PGSQL_ASSOC</info> come terzo parametro
  opzionale. Restituisce solo un array associativo. Se si ha bisogno degli indici numerici,
  utilizzare <strong>pg_fetch_row()</strong>.
  
  Questa funzione imposta i campio NULL al
  valore PHP <info>null</info>.
  
  <strong>pg_fetch_assoc()</strong> NON è significativamente più lenta di <strong>pg_fetch_row()</strong> ed è significativamente più
  facile da usare.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  Risorsa dei risultati della query PostgreSQL, restituita da <strong>pg_query()</strong>,
                     <strong>pg_query_params()</strong> o <strong>pg_execute()</strong> (tra le altre).
  <info>int     </info>  <strong>$row   </strong>  Numero di riga nel risultato da recuperare. Le righe sono numerate da 0 in su.
                     Se viene omesso o <info>null</info>, viene recuperata la riga successiva.

<comment>Return:</comment>
  <info>array</info>  Un <info>array</info> indicizzato in modo associativo (per nome di campo). Ogni valore nell'<info>array</info> è
         rappresentato come <info>string</info>.  I valori <return>NULL</return> del database vengono restituiti come <info>null</info>.
         
         <info>false</info> viene restituito se <strong>$row</strong> supera il numero di righe nel set, non ci sono più righe o
         per qualsiasi altro errore.

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


id: pg_field_table
type: function
doc:
<comment>Description:</comment>
  Returns the name or oid of the tables field
  
  <strong>pg_field_table()</strong> returns the name of the table that field  belongs to, or the table's oid if
  <strong>$oid_only</strong> is <info>true</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result      </strong>  PostgreSQL query result resource, returned by <strong>pg_query()</strong>,
                           <strong>pg_query_params()</strong> or <strong>pg_execute()</strong> (among others).
  <info>int     </info>  <strong>$field_number</strong>  Field number, starting from 0.
  <info>bool    </info>  <strong>$oid_only    </strong>  By default the tables name that field belongs to is returned but if
                           <strong>$oid_only</strong> is set to <info>true</info>, then the oid will instead be returned.

<comment>Return:</comment>
  <info>mixed</info>  On success either the fields table name or oid. Or, <info>false</info> on failure.

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


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$result      </strong>  PostgreSQL query result resource, returned by <strong>pg_query()</strong>,
                           <strong>pg_query_params()</strong> or <strong>pg_execute()</strong> (among others).
  <info>int     </info>  <strong>$field_number</strong>  Field number, starting from 0.

<comment>Return:</comment>
  <info>int</info>  The OID of the field's base type. <info>false</info> is returned on error.

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


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.

<comment>Return:</comment>
  <info>mixed</info>  Returns <info>true</info> if the flush was successful or no data was waiting to be flushed, <return>0</return> if part of
         the pending data was flushed but more remains o <info>false</info> in caso di fallimento.


id: pg_get_notify
type: function
doc:
<comment>Description:</comment>
  Ottiene il messaggio SQL NOTIFY
  
  <strong>pg_get_notify()</strong> riceve notifiche generate da un comando SQL <return>NOTIFY</return>. Per ricevere le notifiche, è
  necessario eseguire il comando SQL <return>LISTEN</return>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection </strong>  Risorsa di connessione al database PostgreSQL.
  <info>int     </info>  <strong>$result_type</strong>  Un parametro facoltativo che controlla come viene indicizzato l'<info>array</info>
                          restituito. <strong>$result_type</strong> è una costante e può assumere i seguenti valori:
                          <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> e <info>PGSQL_BOTH</info>. Usando <info>PGSQL_NUM</info>, <strong>pg_get_notify()</strong>
                          restituirà un array con indici numerici, usando <info>PGSQL_ASSOC</info> restituirà
                          solo indici associativi mentre <info>PGSQL_BOTH</info>, l'impostazione predefinita,
                          restituirà indici sia numerici che associativi.

<comment>Return:</comment>
  <info>array</info>  Un <info>array</info> contenente il nome del messaggio <return>NOTIFY</return> e il PID di backend. A partire da PHP
         5.4.0 e se supportato dal server, l'array contiene anche la versione del server e il
         payload. Altrimenti se non è in attesa alcuna <return>NOTIFY</return>, allora viene restituito <info>false</info>.

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


id: pg_get_pid
type: function
doc:
<comment>Description:</comment>
  Ottiene l'ID del processo del backend
  
  <strong>pg_get_pid()</strong> ottiene il PID del backend (processo del server di database). Il PID è utile per
  determinare se un messaggio <return>NOTIFY</return> ricevuto tramite <strong>pg_get_notify()</strong> viene inviato o meno da un
  altro processo.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Risorsa di connessione al database PostgreSQL.

<comment>Return:</comment>
  <info>int</info>  L'ID del processo del database backend.

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


id: pg_lo_import
type: function
doc:
<comment>Description:</comment>
  Importa un large object da un file
  
  <strong>pg_lo_import()</strong> crea un nuovo large object nel database utilizzando un file sul filesystem come
  origine dati.
  
  Per utilizzare l'interfaccia large object, è necessario racchiuderla in un blocco di transazione.
  
  Questa funzione si chiamava <strong>pg_loimport()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Risorsa di connessione al database PostgreSQL.  Quando  <strong>$connection</strong> non è
                         presente, viene utilizzata la connessione di default. La connessione di
                         default è l'ultima connessione fatta da  <strong>pg_connect()</strong> o <strong>pg_pconnect()</strong>.
  <info>string  </info>  <strong>$pathname  </strong>  Il percorso completo e il nome del file sul filesystem del client da cui
                         leggere i dati del large object.
  <info>mixed   </info>  <strong>$object_id </strong>  Se viene fornito un <strong>$object_id</strong> la funzione proverà a creare un large object
                         con questo id, altrimenti il server assegna un object ID libero. Il
                         parametro è stato aggiunto in PHP 5.3 e si basa sulle funzionalità apparse
                         per la prima volta in PostgreSQL 8.1.

<comment>Return:</comment>
  <info>int</info>  L'OID del large object appena creato, o <info>false</info> in caso di fallimento.

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


id: pg_lo_read_all
type: function
doc:
<comment>Description:</comment>
  Legge interamente un large object e lo manda direttamente al browser


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$large_object</strong>  PostgreSQL large object (LOB) resource, returned by <strong>pg_lo_open()</strong>.
  <info>int     </info>  <strong>$size        </strong>  The number of bytes to truncate.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.  When  <strong>$connection</strong> is not present,
                         the default connection  is used. The default connection is the last
                         connection made by  <strong>pg_connect()</strong> or <strong>pg_pconnect()</strong>.
  <info>string  </info>  <strong>$param_name</strong>  Possible <strong>$param_name</strong> values include <return>server_version</return>,  <return>server_encoding</return>,
                         <return>client_encoding</return>,  <return>is_superuser</return>, <return>session_authorization</return>,  <return>DateStyle</return>,
                         <return>TimeZone</return>, and  <return>integer_datetimes</return>.  Note that this value is case-sensitive.

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


id: pg_ping
type: function
doc:
<comment>Description:</comment>
  Effettua il ping alla connessione del database
  
  <strong>pg_ping()</strong> esegue il ping ad una connessione al database e tenta di ricollegarla se è interrotta.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Risorsa di connessione al database PostgreSQL. Quando <strong>$connection</strong> non è
                         presente, viene utilizzata la connessione predefinita. La connessione
                         predefinita è l'ultima connessione effettuata da <strong>pg_connect()</strong> o
                         <strong>pg_pconnect()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>resourcefalse</info>  A query result resource on success o <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>resourcefalse</info>  A query result resource on success o <info>false</info> in caso di fallimento.

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


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$result   </strong>  A PostgreSQL query result resource from a previously executed statement.
  <info>int     </info>  <strong>$fieldcode</strong>  Possible <strong>$fieldcode</strong> values are: <info>PGSQL_DIAG_SEVERITY</info>, <info>PGSQL_DIAG_SQLSTATE</info>,
                        <info>PGSQL_DIAG_MESSAGE_PRIMARY</info>, <info>PGSQL_DIAG_MESSAGE_DETAIL</info>,
                        <info>PGSQL_DIAG_MESSAGE_HINT</info>, <info>PGSQL_DIAG_STATEMENT_POSITION</info>,
                        <info>PGSQL_DIAG_INTERNAL_POSITION</info> (PostgreSQL 8.0+ only),
                        <info>PGSQL_DIAG_INTERNAL_QUERY</info> (PostgreSQL 8.0+ only), <info>PGSQL_DIAG_CONTEXT</info>,
                        <info>PGSQL_DIAG_SOURCE_FILE</info>, <info>PGSQL_DIAG_SOURCE_LINE</info> or
                        <info>PGSQL_DIAG_SOURCE_FUNCTION</info>.

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

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


id: pg_result_seek
type: function
doc:
<comment>Description:</comment>
  Imposta l'offset di riga interno nella risorsa risultato
  
  <strong>pg_result_seek()</strong> imposta l'offset di riga interno in una risorsa risultato.

<comment>Param:</comment>
  <info>resource</info>  <strong>$result</strong>  Risorsa dei risultati della query PostgreSQL, restituita da <strong>pg_query()</strong>,
                     <strong>pg_query_params()</strong> o <strong>pg_execute()</strong> (tra le altre).
  <info>int     </info>  <strong>$offset</strong>  Riga in cui spostare l'offset interno nella risorsa <strong>$result</strong>. Le righe sono
                     numerate a partire da zero.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.  When  <strong>$connection</strong> is not present,
                         the default connection  is used. The default connection is the last
                         connection made by  <strong>pg_connect()</strong> or <strong>pg_pconnect()</strong>.
  <info>string  </info>  <strong>$stmtname  </strong>  The name of the prepared statement to execute.  if "" is specified, then
                         the unnamed statement is executed.  The name must have been previously
                         prepared using <strong>pg_prepare()</strong>,  <strong>pg_send_prepare()</strong> or a <return>PREPARE</return> SQL command.
  <info>array   </info>  <strong>$params    </strong>  An array of parameter values to substitute for the $1, $2, etc.
                         placeholders in the original prepared query string.  The number of elements
                         in the array must match the number of placeholders.

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

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


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

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

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

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.
        
        Use <strong>pg_get_result()</strong> to determine the query result.

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


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.  When  <strong>$connection</strong> is not present,
                         the default connection  is used. The default connection is the last
                         connection made by  <strong>pg_connect()</strong> or <strong>pg_pconnect()</strong>.
  <info>int     </info>  <strong>$verbosity </strong>  The required verbosity: <info>PGSQL_ERRORS_TERSE</info>, <info>PGSQL_ERRORS_DEFAULT</info> or
                         <info>PGSQL_ERRORS_VERBOSE</info>.

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

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


id: pg_socket
type: function
doc:
<comment>Description:</comment>
  Get a read only handle to the socket underlying a PostgreSQL connection
    
  
  <strong>pg_socket()</strong> returns a read only <info>resource</info> corresponding to the socket underlying the given
  PostgreSQL connection.
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.

<comment>Return:</comment>
  <info>resourcefalse</info>  A socket resource on success o <info>false</info> in caso di fallimento.


id: pg_trace
type: function
doc:
<comment>Description:</comment>
  iAbilita il tracciamento di una connessione PostgreSQL
  
  <strong>pg_trace()</strong> abilita il tracciamento di una comunicazione frontend/backend PostgreSQL verso un file
  di debug specificato da <strong>$percorsofile</strong>. Per riuscire a capire i risultati, occorre conoscere bene i
  dettagli del protocollo di comunicazione di PostgreSQL. Per chi non ne è a conoscenza, può sempre
  essere utile per tracciare gli errori nelle query mandate al server; ad esempio si può eseguire
  grep '^To backend' trace.log e vedere quale query è stata realmente inviata al server PostgreSQL.
  Per ulteriori informazioni, consultare il manuale di PostgreSQL.
  
  <strong>$percorsofile</strong> e <strong>$modo</strong> sono gli stessi parametri di <strong>fopen()</strong> (<strong>$mode</strong> ha come default 'w'),
  <strong>$connession</strong> specifica la connessione da tracciare ed ha come default l'ultima aperta.
  
  <strong>pg_trace()</strong> rRestituisce <info>true</info> se  <strong>$percorsofile</strong> è stato apertoo in scrittura  per il log,
  altrimenti <info>false</info>.

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

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


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.

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


id: pg_unescape_bytea
type: function
doc:
<comment>Description:</comment>
  Rimuove i caratteri di escape in modo binario per il tipo bytea
    
  
  <strong>pg_unescape_bytea()</strong> rimuove l'escape dei valori dei dati bytea di PostgreSQL.  Restituisce la
  stringa senza caratteri di escape, che potrebbe contenere dati binari.
  
  Quando si effettua la <return>SELECT</return> su un tipo bytea, PostgreSQL restituisce valori di byte ottali con
  prefisso '\' (ad esempio \032). Gli utenti dovrebbero riconvertire manualmente in formato binario.
  
  Questa funzione richiede PostgreSQL 7.2 o successivo. Con PostgreSQL 7.2.0 e 7.2.1, su i valori
  bytea deve essere effettuato il cast quando si abilita il supporto multibyte. cioè <return>INSERT INTO
  test_table (image) VALUES ('$image_escaped'::bytea);</return> PostgreSQL 7.2.2 o successivo non necessita
  del cast. L'eccezione si verifica quando la codifica dei caratteri del client e del backend non
  corrisponde e potrebbe esserci un errore di flusso multibyte. L'utente deve quindi eseguire il
  cast a bytea per evitare questo errore.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  Una <info>string</info> contenente i dati bytea di PostgreSQL da convertire in una stringa
                 binaria PHP.

<comment>Return:</comment>
  <info>string</info>  Una <info>string</info> contenente i dati senza caratteri di escape.

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


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

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  PostgreSQL database connection resource.  When  <strong>$connection</strong> is not present,
                         the default connection  is used. The default connection is the last
                         connection made by  <strong>pg_connect()</strong> or <strong>pg_pconnect()</strong>.

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

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


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

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

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


id: php_ini_scanned_files
type: function
doc:
<comment>Description:</comment>
  Restituisce l'elenco dei file .ini leti dalla directory ini aggiuntiva


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

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

<comment>Return:</comment>
  <info>string</info>  The stripped source code will be returned on success, or an empty string on failure.
          
          This function respects the value of the short_open_tag ini directive.
          
          This function works as described as of PHP 5.0.1. Before this it would only return an
          empty string. For more information on this bug and its prior behavior, see bug report
          #29606.


id: php_uname
type: function
doc:
<comment>Description:</comment>
  Restituisce informazioni sul sistema operativo su cui gira il PHP


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


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

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

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


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

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


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

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


id: phpcredits
type: function
doc:
<comment>Description:</comment>
  Visualizza i credits per il PHP
  
  Questa funzione visualizza la lista dei riconoscimenti per gli sviluppatori del PHP, dei vari
  moduli, eccetera. Genera il codice HTML appropriato per inserire l'informazine in una pagina.

<comment>Param:</comment>
  <info>int</info>  <strong>$flag</strong>  Per generare una lista personalizzzata, si usi il parametro <strong>$flag</strong>.
              
              Flag pre-definiti <strong>phpcredits()</strong>nomedescrizioneCREDITS_ALL Tutta la lista dei meriti,
              equivale a <info>CREDITS_DOCS</info> + <info>CREDITS_GENERAL</info> + <info>CREDITS_GROUP</info> + <info>CREDITS_MODULES</info> +
              <info>CREDITS_FULLPAGE</info>. Genera una singola pagina HTML con tutti i tag. CREDITS_DOCSLa lista
              del gruppo di documentazioneCREDITS_FULLPAGE Solitamente utilizzato in combinazione
              con altri flag. Indica che la pagina completa HTML deve essere stampata includendo le
              infomazioni di altri flag. CREDITS_GENERAL Lista generale: design e progetto del
              linguaggio, autori del PHP  e del modulo SAPI. CREDITS_GROUPLista degli sviluppatori
              principaliCREDITS_MODULES Lista dei moduli e dei loro sviluppatori CREDITS_SAPI Lista
              delle API server e dei loro sviluppatori

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.

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


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

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

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.

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


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

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

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.

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


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

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.

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


id: phpdbg_clear
type: function
doc:
<comment>Description:</comment>
  Clears all breakpoints
  
  Clear all breakpoints that have been set, either via one of the <strong>phpdbg_break_*()</strong> functions or
  interactively in the console.
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.

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


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

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

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.

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


id: phpdbg_end_oplog
type: function
doc:
<comment>Description:</comment>
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

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

<comment>Return:</comment>
  <info>arraynull</info>  


id: phpdbg_exec
type: function
doc:
<comment>Description:</comment>
  Attempts to set the execution context
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

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

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


id: phpdbg_get_executable
type: function
doc:
<comment>Description:</comment>
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

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

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


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

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

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.

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


id: phpdbg_start_oplog
type: function
doc:
<comment>Description:</comment>
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

<comment>Return:</comment>
  <info>void</info>  Nessun valore viene restituito.


id: pht\AtomicInteger
type: class
doc:
<comment>Description:</comment>
  The <class>pht\AtomicInteger</class> class is currently the only supported atomic value. It allows for an integer
  to be safely passed around between, and manipulated, by multiple threads. The methods exposed by
  this class do not need mutex locking, since they will acquire the internal mutex lock implicitly.
  pht\AtomicInteger::lock and pht\AtomicInteger::unlock are still exposed, however, for when
  multiple operations involving the same <class>pht\AtomicInteger</class> object need to be grouped together.
  
  The mutex locks of the atomic values are reentrant safe.


id: pht\AtomicInteger::__construct
type: function
doc:
<comment>Description:</comment>
  AtomicInteger creation
  
  Handles the creation of a new atomic integer.

<comment>Param:</comment>
  <info>int</info>  <strong>$value</strong>  The value to initialise the atomic integer to.

<comment>Return:</comment>
  <info>AtomicInteger</info>  No return value.


id: pht\AtomicInteger::dec
type: function
doc:
<comment>Description:</comment>
  Decrements the atomic integer's value by one
  
  This method will decrement the atomic integer's value by one. Internally, the mutex lock of the
  atomic integer will be acquired, and so there is no need to manually acquire it (unless this
  operation needs to be grouped with other operations on the same atomic integer - see the example
  in pht\AtomicInteger::lock for a demonstration of this).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\AtomicInteger::get
type: function
doc:
<comment>Description:</comment>
  Gets the atomic integer's value
  
  This method will fetch the current value of the atomic integer. Internally, the mutex lock of the
  atomic integer will be acquired, and so there is no need to manually acquire it (unless this
  operation needs to be grouped with other operations on the same atomic integer - see the example
  in pht\AtomicInteger::lock for a demonstration of this).

<comment>Return:</comment>
  <info>int</info>  The current integer value of the atomic integer.


id: pht\AtomicInteger::inc
type: function
doc:
<comment>Description:</comment>
  Increments the atomic integer's value by one
  
  This method will increment the atomic integer's value by one. Internally, the mutex lock of the
  atomic integer will be acquired, and so there is no need to manually acquire it (unless this
  operation needs to be grouped with other operations on the same atomic integer - see the example
  in pht\AtomicInteger::lock for a demonstration of this).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\AtomicInteger::lock
type: function
doc:
<comment>Description:</comment>
  Acquires the atomic integer's mutex lock
  
  This method will acquire the mutex lock associated with the atomic integer. The mutex lock only
  needs to be acquired when needing to group together multiple operations.
  
  The mutex locks of the atomic values are reentrant safe. It is therefore valid for the same thread
  to reacquire a mutex lock that it has already acquired.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\AtomicInteger::set
type: function
doc:
<comment>Description:</comment>
  Sets the atomic integer's value
  
  This method will set the value of the atomic integer. Internally, the mutex lock of the atomic
  integer will be acquired, and so there is no need to manually acquire it (unless this operation
  needs to be grouped with other operations on the same atomic integer - see the example in
  pht\AtomicInteger::lock for a demonstration of this).

<comment>Param:</comment>
  <info>int</info>  <strong>$value</strong>  The value to set the atomic integer to.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\AtomicInteger::unlock
type: function
doc:
<comment>Description:</comment>
  Releases the atomic integer's mutex lock
  
  This method will release the mutex lock associated with the atomic integer.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\HashTable
type: class
doc:
<comment>Description:</comment>
  The <class>pht\HashTable</class> class is one of the Inter-Thread Communication (ITC) data structures exposed by
  pht. It can be safely passed around between threads, and manipulated by multiple threads using the
  mutex locks that have been packed in with the data structure. It is reference-counted across
  threads, and so it does not need to be explicitly destroyed.
  
  The <class>pht\HashTable</class> class enables for array access upon its objects (along with the <strong>isset()</strong> and
  <strong>unset()</strong> functions). The <class>ArrayAccess</class> interface is not explicitly implemented, however, because it
  is only needed for such abilities by userland classes.


id: pht\HashTable::lock
type: function
doc:
<comment>Description:</comment>
  Acquires the hash table's mutex lock
  
  This method will acquire the mutex lock associated with the hash table. The mutex lock should
  always be acquired when manipulating the hash table if it is being used by multiple threads.
  
  The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant.
  Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a
  deadlock.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\HashTable::size
type: function
doc:
<comment>Description:</comment>
  Gets the size of the hash table
  
  Returns the current size of the hash table. This operation requires a <class>pht\HashTable</class>'s mutex lock
  to be held if it is being used by multiple threads.

<comment>Return:</comment>
  <info>int</info>  The size of the hash table.


id: pht\HashTable::unlock
type: function
doc:
<comment>Description:</comment>
  Releases the hash table's mutex lock
  
  This method will release the mutex lock associated with the hash table.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Queue
type: class
doc:
<comment>Description:</comment>
  The <class>pht\Queue</class> class is one of the Inter-Thread Communication (ITC) data structures exposed by pht.
  It can be safely passed around between threads, and manipulated by multiple threads using the
  mutex locks that have been packed in with the data structure. It is reference-counted across
  threads, and so it does not need to be explicitly destroyed.


id: pht\Queue::front
type: function
doc:
<comment>Description:</comment>
  Returns the first value from a queue
  
  This method will remove a value from the front of the queue (in constant time). Attempting to
  return the front value from an empty queue will result in an <class>Error</class> exception.
  
  Due to the fact that all values in a <class>pht\Queue</class> are serialised, extracting a value from the queue
  will require it to be deserialised. This can incur a noticeable performance hit if the inspection
  of the queue's front value is performed within a loop.

<comment>Return:</comment>
  <info>mixed</info>  The value on the front of the queue.


id: pht\Queue::lock
type: function
doc:
<comment>Description:</comment>
  Acquires the queue's mutex lock
  
  This method will acquire the mutex lock associated with the queue. The mutex lock should always be
  acquired when manipulating the queue if it is being used by multiple threads.
  
  The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant.
  Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a
  deadlock.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Queue::pop
type: function
doc:
<comment>Description:</comment>
  Pops a value off of the front of a queue
  
  This method will remove a value from the front of the queue (in constant time). Attempting to pop
  a value from an empty queue will result in an <class>Error</class> exception.

<comment>Return:</comment>
  <info>mixed</info>  The value removed from the queue.


id: pht\Queue::push
type: function
doc:
<comment>Description:</comment>
  Pushes a value to the end of a queue
  
  This method will add a value onto the queue.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value to be added to a <class>pht\Queue</class>. This value will be serialised (since it may
                 be passed around between threads).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Queue::size
type: function
doc:
<comment>Description:</comment>
  Gets the size of the queue
  
  Returns the current size of the queue. This operation requires a <class>pht\Queue</class>'s mutex lock to be held
  if it is being used by multiple threads.

<comment>Return:</comment>
  <info>int</info>  The size of the queue.


id: pht\Queue::unlock
type: function
doc:
<comment>Description:</comment>
  Releases the queue's mutex lock
  
  This method will release the mutex lock associated with the queue.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Runnable
type: class
doc:
<comment>Description:</comment>
  The pht\Runnable interface enforces the implementation of a run() method on classes that should be
  threaded. This method acts as the entry point of the threaded class.


id: pht\Runnable::run
type: function
doc:
<comment>Description:</comment>
  The entry point of a threaded class
  
  This method acts as the entry point of execution for a threaded class. It must be defined by all
  classes that will be threaded.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Thread
type: class
doc:
<comment>Description:</comment>
  The <class>pht\Thread</class> class abstracts away a native thread. It has an internal task queue, where the
  methods pht\Thread::addClassTask, pht\Thread::addFunctionTask, and pht\Thread::addFileTask push
  new tasks onto this queue. Invoking the pht\Thread::start method will cause the new thread to be
  spawned, where it will then begin working through the task queue. A thread may be reused for any
  number of tasks.


id: pht\Thread::addClassTask
type: function
doc:
<comment>Description:</comment>
  Class threading
  
  Adds a new class task to a <class>pht\Thread</class>s internal task queue.

<comment>Param:</comment>
  <info>string</info>  <strong>$className</strong>  The name of the class to be threaded. This class must implement the
                      pht\Runnable interface.
  <info>mixed </info>  <strong>$ctorArgs </strong>  An optional list of arguments for the threaded class' constructor. These
                      arguments will be serialised (since they are being passed to another thread).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Thread::addFileTask
type: function
doc:
<comment>Description:</comment>
  File threading
  
  Adds a new file task to a <class>pht\Thread</class>s internal task queue.

<comment>Param:</comment>
  <info>     </info>  <strong>$func   </strong>  The name of the file to be threaded.
  <info>mixed</info>  <strong>$globals</strong>  An optional list of arguments for the file. These arguments will be placed into a
                   <return>$_THREAD</return> superglobal, which will be made available inside of the threaded file.
                   All arguments will be serialised (since they are being passed to another thread).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Thread::addFunctionTask
type: function
doc:
<comment>Description:</comment>
  Function threading
  
  Adds a new function task to a <class>pht\Thread</class>s internal task queue.

<comment>Param:</comment>
  <info>callable</info>  <strong>$func    </strong>  The function to be threaded. If it is bound to an instance, then <return>$this</return> will
                       become <info>null</info>.
  <info>mixed   </info>  <strong>$funcArgs</strong>  An optional list of arguments for the function. These arguments will be
                       serialised (since they are being passed to another thread).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Thread::join
type: function
doc:
<comment>Description:</comment>
  Joins a thread
  
  This method will join the spawned thread (though it will first wait for that thread's internal
  task queue to finish). As a matter of good practice, threads should always be joined. Not joining
  a thread may lead to undefined behaviour.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Thread::start
type: function
doc:
<comment>Description:</comment>
  Starts the new thread
  
  This will cause a new thread to be spawned for the associated <class>pht\Thread</class> object, where its
  internal task queue will begin to be processed.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Thread::taskCount
type: function
doc:
<comment>Description:</comment>
  Gets a thread's task count
  
  Retrieves the current task count of a <class>pht\Thread</class>.

<comment>Return:</comment>
  <info>int</info>  The number of tasks remaining to be processed.


id: pht\Threaded
type: class
doc:
<comment>Description:</comment>
  The pht\Threaded interface is an internal interface used by the Inter-Thread Communication (ITC)
  data structures (<class>pht\HashTable</class>, <class>pht\Queue</class>, and <class>pht\Vector</class>). It allows those data structures to be
  threaded and ensures that the mutex locking API (pht\Threaded::lock and pht\Threaded::unlock) is
  implemented by each of the ITC data structures. It is not implementable by userland classes (since
  standalone mutex locks are not exposed).


id: pht\Threaded::lock
type: function
doc:
<comment>Description:</comment>
  Acquires the mutex lock
  
  This method will acquire the mutex lock associated with the given class (either a <class>pht\HashTable</class>,
  <class>pht\Queue</class>, <class>pht\Vector</class>, or <class>pht\AtomicInteger</class>).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Threaded::unlock
type: function
doc:
<comment>Description:</comment>
  Releases the mutex lock
  
  This method will unlock the mutex lock associated with the given class (either a <class>pht\HashTable</class>,
  <class>pht\Queue</class>, <class>pht\Vector</class>, or <class>pht\AtomicInteger</class>).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Vector
type: class
doc:
<comment>Description:</comment>
  The <class>pht\Vector</class> class is one of the Inter-Thread Communication (ITC) data structures exposed by
  pht. It can be safely passed around between threads, and manipulated by multiple threads using the
  mutex locks that have been packed in with the data structure. It is reference-counted across
  threads, and so is does not need to be explicitly destroyed.
  
  The <class>pht\Vector</class> class enables for array access upon its objects (along with the <strong>isset()</strong> and <strong>unset()</strong>
  functions). The <class>ArrayAccess</class> interface is not explicitly implemented, however, because it is only
  needed for such abilities by userland classes.


id: pht\Vector::__construct
type: function
doc:
<comment>Description:</comment>
  Vector creation
  
  Handles the creation of a new vector.

<comment>Param:</comment>
  <info>int  </info>  <strong>$size </strong>  The size of the vector that will be created.
  <info>mixed</info>  <strong>$value</strong>  The value to initialise the empty slots in the vector to.

<comment>Return:</comment>
  <info>Vector</info>  No return value.


id: pht\Vector::deleteAt
type: function
doc:
<comment>Description:</comment>
  Deletes a value in the vector
  
  This method deletes a value at the specified offset in the vector (in linear time).
  
  Since the <class>pht\Vector</class> class supports array access, deleting values can also be performed using the
  array subset notation (<return>[]</return>) in combination with the <strong>unset()</strong> function.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The offset at which the value will be deleted at. This offset must be within the
                0..(N-1) range (inclusive), where N is the size of the vector. Attempting to delete
                at offsets outside of this range will result in an <class>Error</class> exception.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Vector::insertAt
type: function
doc:
<comment>Description:</comment>
  Inserts a value into the vector
  
  This method inserts a value at the specified offset into the vector (in linear time). The vector
  will automatically be resized if it is not large enough.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value </strong>  The value to be inserted into the vector. This value will be serialised (since it
                  may be passed around between threads).
  <info>int  </info>  <strong>$offset</strong>  The offset at which the value will be inserted at. This offset must be within the
                  0..N range (inclusive), where N is the size of the vector. Inserting at position N
                  is the equivalent of using pht\Vector::push, and inserting at position 0 is the
                  equivalent of using pht\Vector::unshift. Attempting to insert at offsets outside
                  of this range will result in an <class>Error</class> exception.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Vector::lock
type: function
doc:
<comment>Description:</comment>
  Acquires the vector's mutex lock
  
  This method will acquire the mutex lock associated with the vector. The mutex lock should always
  be acquired when manipulating the vector if it is being used by multiple threads.
  
  The mutex locks of the Inter-Thread Communication (ITC) data structures are not reentrant.
  Attempting to reacquire an already-acquired mutex lock by the same thread will therefore cause a
  deadlock.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Vector::pop
type: function
doc:
<comment>Description:</comment>
  Pops a value to the vector
  
  This method pops a value from the end of a vector (in constant time). Popping a value from an
  empty vector will result in an <class>Error</class> exception.

<comment>Return:</comment>
  <info>mixed</info>  The value from the end of the vector.


id: pht\Vector::push
type: function
doc:
<comment>Description:</comment>
  Pushes a value to the vector
  
  This method pushes a value onto the end of a vector (in constant time). The vector will
  automatically be resized if it is not large enough.
  
  Since the <class>pht\Vector</class> class supports array access, new values can also be pushed onto the vector
  using the empty subset notation (<return>[]</return>).

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value to be pushed onto the end of the vector. This value will be serialised
                 (since it may be passed around between threads).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Vector::resize
type: function
doc:
<comment>Description:</comment>
  Resizes a vector
  
  Resizes the vector. If it is enlarged, then the <strong>$value</strong> parameter will be used to fill in the new
  slots. If it is made smaller, then the end values will be truncated.

<comment>Param:</comment>
  <info>int  </info>  <strong>$size </strong>  The new size of the vector.
  <info>mixed</info>  <strong>$value</strong>  The value to initialise the empty vector slots to (only used if the vector is
                 enlarged).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Vector::shift
type: function
doc:
<comment>Description:</comment>
  Shifts a value from the vector
  
  This method shifts a value from the front of a vector (in linear time). Shifting a value from an
  empty vector will result in an <class>Error</class> exception.

<comment>Return:</comment>
  <info>mixed</info>  The value from the front of the vector.


id: pht\Vector::size
type: function
doc:
<comment>Description:</comment>
  Gets the size of the vector
  
  Returns the current size of the vector. This operation requires a <class>pht\Vector</class>'s mutex lock to be
  held if it is being used by multiple threads.

<comment>Return:</comment>
  <info>int</info>  The size of the vector.


id: pht\Vector::unlock
type: function
doc:
<comment>Description:</comment>
  Releases the vector's mutex lock
  
  This method will release the mutex lock associated with the vector.

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Vector::unshift
type: function
doc:
<comment>Description:</comment>
  Unshifts a value to the vector front
  
  This method unshifts a value to the front of a vector (in linear time). The vector will
  automatically be resized if it is not large enough.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value to be pushed onto the beginning of the vector. This value will be
                 serialised (since it may be passed around between threads).

<comment>Return:</comment>
  <info>void</info>  No return value.


id: pht\Vector::updateAt
type: function
doc:
<comment>Description:</comment>
  Updates a value in the vector
  
  This method updates a value at the specified offset in the vector (in linear time). The vector
  will automatically be resized if it is not large enough.
  
  Since the <class>pht\Vector</class> class supports array access, updating values can also be performed using the
  array subset notation (<return>[]</return>).

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value </strong>  The value to be inserted into the vector. This value will be serialised (since it
                  may be passed around between threads).
  <info>int  </info>  <strong>$offset</strong>  The offset at which the value will be updated at. This offset must be within the
                  0..(N-1) range (inclusive), where N is the size of the vector. Attempting to
                  update at offsets outside of this range will result in an <class>Error</class> exception.

<comment>Return:</comment>
  <info>void</info>  No return value.


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.
        
        However, if libgd fails to output the image, this function returns <info>true</info>.

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


id: popen
type: function
doc:
<comment>Description:</comment>
  Apre un puntatore ad un file di processo
  
  Apre una pipe ad un processo eseguito forkando il comando dato  da <strong>$command</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>  Il comando
  <info>string</info>  <strong>$mode   </strong>  La modalità. O <return>'r'</return> per leggere, o <return>'w'</return> per scrivere.
                    
                    Su Windows, <strong>popen()</strong> di default usa la modalità testo, cioè qualsiasi carattere
                    <return>\n</return> scritto o letto dalla pipe verrà tradotto in <return>\r\n</return>. Se ciò non è desiderato,
                    può essere applicata la modalità binaria impostando <strong>$mode</strong> a <return>'rb'</return> e <return>'wb'</return>,
                    rispettivamente.

<comment>Return:</comment>
  <info>resource</info>  Restituisce un puntatore a file identico a quello restituito da <strong>fopen()</strong>, eccetto che per
            il fatto che è unidirezionale (può  solo essere usato per la lettura o la scrittura) e
            deve essere chiuso con <strong>pclose()</strong>. Questo puntatore può essere usato con <strong>fgets()</strong>, <strong>fgetss()</strong>
            e <strong>fwrite()</strong>. Quando la modalità è 'r', il puntatore al file restituito è uguale allo
            STDOUT del comando, quando la modalità è 'w', il puntatore al file restituito è uguale
            allo STDIN del comando.
            
            Se si verifica un errore, restituisce <info>false</info>.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: posix_errno
type: function
doc:
<comment>Description:</comment>
  Alias di posix_get_last_error
  
  Questa funzione è sinonimo di:  <strong>posix_get_last_error()</strong>.


id: posix_get_last_error
type: function
doc:
<comment>Description:</comment>
  Recupera il numero di errore dell'ultima funzione
       posix non riuscita


id: posix_getgrgid
type: function
doc:
<comment>Description:</comment>
  Restituisce informazioni su un gruppo dato il suo id
  
  Ottiene informazioni su un gruppo dato il suo id.

<comment>Param:</comment>
  <info>int</info>  <strong>$gid</strong>  L'id del gruppo.

<comment>Return:</comment>
  <info>array</info>  Gli elementi dell'array restituiti sono: L'array delle informazioni sul
         gruppoElementoDescrizionename L'elemento name contiene il nome del gruppo. Questo è un
         breve "handle" del gruppo, di solito inferiore a 16 caratteri, non il vero nome completo.
         passwd L'elemento passwd contiene la password del gruppo in un formato criptato. Spesso
         viene invece restituito un asterisco, per esempio su un sistema che impiega password
         "shadow". gid L'ID del gruppo, dovrebbe essere lo stesso del parametro <strong>$gid</strong> usato quando si
         chiama la funzione, e quindi ridondante. members Questo consiste in un <info>array</info> di <info>string</info>he
         per tutti i membri nel gruppo.

<comment>See Also:</comment>
   * <strong>posix_getegid()</strong>
   * <strong>posix_getgrnam()</strong>
   * <strong>filegroup()</strong>
   * <strong>stat()</strong>
   * la pagina del man di POSIX di GETGRNAM(3)


id: posix_getpgid
type: function
doc:
<comment>Description:</comment>
  Restituisce l'id del gruppo del processo per il controllo dei job


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: posix_mkfifo
type: function
doc:
<comment>Description:</comment>
  Crea un file speciale di tipo fifo (una pipe nominata)
  
  <strong>posix_mkfifo()</strong> crea un file  <return>FIFO</return> speciale che esiste nel file system e agisce come  teminale di
  comunicazione bidirezionale per i processi.

<comment>Param:</comment>
  <info>string</info>  <strong>$pathname</strong>  Percorso del file <return>FIFO</return>.
  <info>int   </info>  <strong>$mode    </strong>  Il secondo parametro, <strong>$mode</strong> deve essere passato in notazione ottale (ad esempio
                     0644). I permessi del <return>FIFO</return> appena creato dipendono anche dall'impostazione
                     corrente di  <strong>umask()</strong>. I permessi del file creato sono (mode & ~umask).

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

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


id: preg_grep
type: function
doc:
<comment>Description:</comment>
  Restituisce una matrice degli elementi riconosciuti tramite le espressioni regolari


id: preg_last_error
type: function
doc:
<comment>Description:</comment>
  Returns the error code of the last PCRE regex execution
  
  Returns the error code of the last PCRE regex execution.
  
  <strong>preg_last_error()</strong> example
  ]]>Il precedente esempio visualizzerà:
  
  Il precedente esempio visualizzerà:

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

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


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

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

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


id: preg_quote
type: function
doc:
<comment>Description:</comment>
  Inserisce il carattere di escape nei caratteri delle espressioni regolari


id: preg_replace
type: function
doc:
<comment>Description:</comment>
  Esegue una ricerca ed una sostituzione con le espressioni regolari


id: preg_replace_callback
type: function
doc:
<comment>Description:</comment>
  Esegue ricerche e sostituzioni con espressioni regolari usando una callback
  
  Il comportamento di questa funzione è quasi identico a <strong>preg_replace()</strong>, eccetto per il fatto che
  invece del  parametro <strong>$replacement</strong>, si deve specificare una <strong>$callback</strong>.

<comment>Param:</comment>
  <info>mixed   </info>  <strong>$pattern </strong>  Il pattern da cercare. Può essere una stringa o un array con stringhe.
  <info>callable</info>  <strong>$callback</strong>  Una callback che verrà chiamata e a cui verrà passato un array di elementi
                       corrispondenti nella stringa <strong>$subject</strong>. La callback dovrebbe restituire la
                       stringa di sostituzione. Questa è la firma della callback:
                       
                       <info>string</info>handler<info>array</info><strong>$matches</strong>
                       
                       Si avrà spesso bisogno della funzione <strong>$callback</strong> per una
                       <strong>preg_replace_callback()</strong> in un solo posto. In questo caso si può usare una
                       funzione anonima per dichiarare la callback all'interno della chiamata a
                       <strong>preg_replace_callback()</strong>. In questo modo si hanno tutte le informazioni per la
                       chiamata in un posto e non si ingombra il namespace della funzione con un
                       nome di funzione della callback non utilizzato da nessun'altra parte.
                       
                       <strong>preg_replace_callback()</strong> e le funzioni anonime
  <info>mixed   </info>  <strong>$subject </strong>  La stringa o l'array con le stringhe da cercare e sostituire.
  <info>int     </info>  <strong>$limit   </strong>  Le massime sostituzioni possibili per ogni pattern in ogni stringa <strong>$subject</strong>.
                       Il valore predefinito è <return>-1</return> (senza limiti).
  <info>int     </info>  <strong>$count   </strong>  Se specificato, questa variabile sarà riempita con il numero di sostituzioni
                       fatte.
  <info>int     </info>  <strong>$flags   </strong>  <strong>$flags</strong> può essere una combinazione dei flag <info>PREG_OFFSET_CAPTURE</info> e
                       <info>PREG_UNMATCHED_AS_NULL</info>, che influenzano il formato dell'array delle
                       corrispondenze. Vedere la descrizione in <strong>preg_match()</strong> per ulteriori dettagli.

<comment>Return:</comment>
  <info>mixed</info>  <strong>preg_replace_callback()</strong> restituisce un array se il parametro <strong>$subject</strong> è un array, o una
         stringa in caso contrario. In caso di errori il valore di ritorno è <info>null</info>
         
         Se vengono trovate corrispondenze, verrà restituito il nuovo subject, in caso contrario
         verrà restituito il valore di <strong>$subject</strong> invariato.

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


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

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

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

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


id: print
type: function
doc:
<comment>Description:</comment>
  Visualizza una stringa
  
  Visualizza <strong>$arg</strong>.
  
  In realtà <return>print</return> non è una funzione (è un costrutto del linguaggio) pertanto non sono richieste le
  parentesi per la lista degli argomenti.
  
  La sola differenza rispetto a <return>echo</return> è il fatto che <return>print</return> accetta un elemento singolo.

<comment>Param:</comment>
  <info>string</info>  <strong>$arg</strong>  I dati in ingresso.

<comment>Return:</comment>
  <info>int</info>  Restituisce sempre <return>1</return>.

<comment>See Also:</comment>
   * <strong>echo()</strong>
   * <strong>printf()</strong>
   * <strong>flush()</strong>
   * sintassi Heredoc


id: print_r
type: function
doc:
<comment>Description:</comment>
  Stampa informazioni relative al contenuto di una variabile in formato leggibile
    
  
  <strong>print_r()</strong> mostra informazioni su una variabile in un modo che sia leggibile dagli umani.
  
  <strong>print_r()</strong>, <strong>var_dump()</strong> e <strong>var_export()</strong> mostreranno anche proprietà protette e private di oggetti con
  PHP 5. I membri della classe statici non verranno mostrati.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$expression</strong>  L'espressione da stampare.
  <info>bool </info>  <strong>$return    </strong>  Se si volesse catturare l'output di <strong>print_r()</strong>,  utilizzare il parametro
                      <strong>$return</strong>.  Quando questo parametro è impostato a <info>true</info>, <strong>print_r()</strong> restituirà le
                      informazioni invece di stamparle.

<comment>Return:</comment>
  <info>mixed</info>  Se viene data una <info>string</info>, un <info>integer</info> o un <info>float</info>, verrà stampato il valore stesso.  Se viene
         dato un <info>array</info>, i valori saranno presentati in un formato che mostra chiavi ed elementi.
         Una notazione simile è usata per un <info>object</info>.
         
         Quando il parametro <strong>$return</strong> è <info>true</info>, questa funzione restituirà una <info>string</info>. Altrimenti, il
         valore restituito è <info>true</info>.

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


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

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

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


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

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

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

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento. If an error occurs, like
        the user lacks permission to change the priority,  an error of level <info>E_WARNING</info> is also
        generated.


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

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

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

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


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

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

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

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


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

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

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

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


id: ps_add_bookmark
type: function
doc:
<comment>Description:</comment>
  Add bookmark to current page
  
  Adds a bookmark for the current page. Bookmarks usually appear in PDF-Viewers left of the page in
  a hierarchical tree. Clicking on a bookmark will jump to the given page.
  
  L'annotazione non sarà visibile se il documento
  è stampato o visualizzato, ma verrà mostrata se il documento è convertito in
  pdf da Acrobat Distiller™ o Ghostview.

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

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

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


id: ps_add_launchlink
type: function
doc:
<comment>Description:</comment>
  Adds link which launches file
  
  Places a hyperlink at the given position pointing to a file program which is being started when
  clicked on. The hyperlink's source position is a rectangle with its lower left corner at (llx,
  lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.
  
  L'annotazione non sarà visibile se il documento
  è stampato o visualizzato, ma verrà mostrata se il documento è convertito in
  pdf da Acrobat Distiller™ o Ghostview.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: ps_add_locallink
type: function
doc:
<comment>Description:</comment>
  Adds link to a page in the same document
  
  Places a hyperlink at the given position pointing to a page in the same document. Clicking on the
  link will jump to the given page. The first page in a document has number 1.
  
  The hyperlink's source position is a rectangle with its lower left corner at (<strong>$llx</strong>, <strong>$lly</strong>) and its
  upper right corner at (<strong>$urx</strong>, <strong>$ury</strong>). The rectangle has by default a thin blue border.
  
  L'annotazione non sarà visibile se il documento
  è stampato o visualizzato, ma verrà mostrata se il documento è convertito in
  pdf da Acrobat Distiller™ o Ghostview.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: ps_add_note
type: function
doc:
<comment>Description:</comment>
  Adds note to current page
  
  Adds a note at a certain position on the page. Notes are like little rectangular sheets with text
  on it, which can be placed anywhere on a page. They are shown either folded or unfolded. If
  folded, the specified icon is used as a placeholder.
  
  L'annotazione non sarà visibile se il documento
  è stampato o visualizzato, ma verrà mostrata se il documento è convertito in
  pdf da Acrobat Distiller™ o Ghostview.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: ps_add_pdflink
type: function
doc:
<comment>Description:</comment>
  Adds link to a page in a second pdf document
  
  Places a hyperlink at the given position pointing to a second pdf document. Clicking on the link
  will branch to the document at the given page. The first page in a document has number 1.
  
  The hyperlink's source position is a rectangle with its lower left corner at (<strong>$llx</strong>, <strong>$lly</strong>) and its
  upper right corner at (<strong>$urx</strong>, <strong>$ury</strong>). The rectangle has by default a thin blue border.
  
  L'annotazione non sarà visibile se il documento
  è stampato o visualizzato, ma verrà mostrata se il documento è convertito in
  pdf da Acrobat Distiller™ o Ghostview.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: ps_add_weblink
type: function
doc:
<comment>Description:</comment>
  Adds link to a web location
  
  Places a hyperlink at the given position pointing to a web page. The  hyperlink's source position
  is a rectangle with its lower left corner at (<strong>$llx</strong>, <strong>$lly</strong>) and its upper right corner at (<strong>$urx</strong>,
  <strong>$ury</strong>). The rectangle has by default a thin blue border.
  
  L'annotazione non sarà visibile se il documento
  è stampato o visualizzato, ma verrà mostrata se il documento è convertito in
  pdf da Acrobat Distiller™ o Ghostview.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>intfalse</info>  The identifier of the pattern  o <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>int</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>voidfalse</info>  Returns <info>null</info> on success o <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

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

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


id: ps_get_buffer
type: function
doc:
<comment>Description:</comment>
  Fetches the full buffer containig the generated PS data
  
  This function is not implemented yet. It will always return an empty string. The idea for a later
  implementation is to write the contents of the postscript file into an internal buffer if in
  memory creation is requested, and retrieve the buffer content with this function. Currently,
  documents created in memory are send to the browser without buffering.
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

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

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

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


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

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

<comment>Return:</comment>
  <info>stringfalse</info>  Returns the value of the parameter  o <info>false</info> in caso di fallimento.

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


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

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

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

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


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

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

<comment>Return:</comment>
  <info>arrayfalse</info>  An array of integers indicating the position of possible breaks in the text  o <info>false</info>
              in caso di fallimento.

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


id: ps_include_file
type: function
doc:
<comment>Description:</comment>
  Reads an external file with raw PostScript code
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.
  
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

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

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

<comment>Return:</comment>
  <info>resourcefalse</info>  Resource of PostScript document o <info>false</info> in caso di fallimento. The return value is
                 passed to all other functions as the first argument.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

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

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


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

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

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

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


id: ps_open_memory_image
type: function
doc:
<comment>Description:</comment>
  Takes an GD image and returns an image for placement in a PS document
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.
  
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

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

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: ps_setflat
type: function
doc:
<comment>Description:</comment>
  Sets flatness
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.
  
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: ps_setoverprintmode
type: function
doc:
<comment>Description:</comment>
  Sets overprint mode
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.
  
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>intfalse</info>  Returns the identifier of the pattern  o <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>intfalse</info>  The identifier of the pattern  o <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


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

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

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

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: ps_show_xy2
type: function
doc:
<comment>Description:</comment>
  Output text at position
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.
  
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: ps_string_geometry
type: function
doc:
<comment>Description:</comment>
  Gets geometry of a string
  
  This function is similar to <strong>ps_stringwidth()</strong> but returns an array of dimensions containing the
  width, ascender, and descender of the text.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc </strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string  </info>  <strong>$text  </strong>  The text for which the geometry is to be calculated.
  <info>int     </info>  <strong>$fontid</strong>  The identifier of the font to be used. If not font is specified the current
                     font will be used.
  <info>float   </info>  <strong>$size  </strong>  The size of the font. If no size is specified the current size is used.

<comment>Return:</comment>
  <info>array</info>  An array of the dimensions of a string. The element 'width' contains the width of the
         string as returned by <strong>ps_stringwidth()</strong>. The element 'descender' contains the maximum
         descender and 'ascender' the maximum ascender of the string.

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


id: ps_stringwidth
type: function
doc:
<comment>Description:</comment>
  Gets width of a string
  
  Calculates the width of a string in points if it was output in the given font and font size. This
  function needs an Adobe font metrics file to calculate the precise width. If kerning is turned on,
  it will be taken into account.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc </strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>string  </info>  <strong>$text  </strong>  The text for which the width is to be calculated.
  <info>int     </info>  <strong>$fontid</strong>  The identifier of the font to be used. If not font is specified the current
                     font will be used.
  <info>float   </info>  <strong>$size  </strong>  The size of the font. If no size is specified the current size is used.

<comment>Return:</comment>
  <info>float</info>  Width of a string in points.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: ps_symbol
type: function
doc:
<comment>Description:</comment>
  Output a glyph
  
  Output the glyph at position <strong>$ord</strong> in the font encoding vector of the current font. The font
  encoding for a font can be set when loading the font with <strong>ps_findfont()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc</strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int     </info>  <strong>$ord  </strong>  The position of the glyph in the font encoding vector.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>ps_symbol_name()</strong>
   * <strong>ps_symbol_width()</strong>


id: ps_symbol_name
type: function
doc:
<comment>Description:</comment>
  Gets name of a glyph
  
  This function needs an Adobe font metrics file to know which glyphs are available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc </strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int     </info>  <strong>$ord   </strong>  The parameter <strong>$ord</strong> is the position of the glyph in the font encoding vector.
  <info>int     </info>  <strong>$fontid</strong>  The identifier of the font to be used. If not font is specified the current
                     font will be used.

<comment>Return:</comment>
  <info>string</info>  The name of a glyph in the given font.

<comment>See Also:</comment>
   * <strong>ps_symbol()</strong>
   * <strong>ps_symbol_width()</strong>


id: ps_symbol_width
type: function
doc:
<comment>Description:</comment>
  Gets width of a glyph
  
  Calculates the width of a glyph in points if it was output in the given font and font size.  This
  function needs an Adobe font metrics file to calculate the precise width.

<comment>Param:</comment>
  <info>resource</info>  <strong>$psdoc </strong>  Resource identifier of the postscript file as returned by <strong>ps_new()</strong>.
  <info>int     </info>  <strong>$ord   </strong>  The position of the glyph in the font encoding vector.
  <info>int     </info>  <strong>$fontid</strong>  The identifier of the font to be used. If not font is specified the current
                     font will be used.
  <info>float   </info>  <strong>$size  </strong>  The size of the font. If no size is specified the current size is used.

<comment>Return:</comment>
  <info>float</info>  The width of a glyph in points.

<comment>See Also:</comment>
   * <strong>ps_symbol()</strong>
   * <strong>ps_symbol_name()</strong>


id: ps_translate
type: function
doc:
<comment>Description:</comment>
  Sets translation
  
  Sets a new initial point of the coordinate system.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: pspell_add_to_personal
type: function
doc:
<comment>Description:</comment>
  Add the word to a personal wordlist
  
  <strong>pspell_add_to_personal()</strong> adds a word to the personal wordlist. If you used <strong>pspell_new_config()</strong>
  with <strong>pspell_config_personal()</strong> to open the dictionary, you can save the wordlist later with
  <strong>pspell_save_wordlist()</strong>.

<comment>Param:</comment>
  <info>int   </info>  <strong>$dictionary</strong>  
  <info>string</info>  <strong>$word      </strong>  The added word.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_add_to_session
type: function
doc:
<comment>Description:</comment>
  Add the word to the wordlist in the current session
  
  <strong>pspell_add_to_session()</strong> adds a word to the wordlist associated with the current session. It is
  very similar to <strong>pspell_add_to_personal()</strong>

<comment>Param:</comment>
  <info>int   </info>  <strong>$dictionary</strong>  
  <info>string</info>  <strong>$word      </strong>  The added word.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_check
type: function
doc:
<comment>Description:</comment>
  Check a word
  
  <strong>pspell_check()</strong> checks the spelling of a word.

<comment>Param:</comment>
  <info>int   </info>  <strong>$dictionary</strong>  
  <info>string</info>  <strong>$word      </strong>  The tested word.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the spelling is correct, <info>false</info> if not.


id: pspell_clear_session
type: function
doc:
<comment>Description:</comment>
  Clear the current session
  
  <strong>pspell_clear_session()</strong> clears the current session. The current wordlist becomes blank, and, for
  example, if you try to save it with <strong>pspell_save_wordlist()</strong>, nothing happens.

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_config_create
type: function
doc:
<comment>Description:</comment>
  Create a config used to open a dictionary
  
  Create a config used to open a dictionary.
  
  <strong>pspell_config_create()</strong> has a very similar syntax to <strong>pspell_new()</strong>. In fact, using
  <strong>pspell_config_create()</strong> immediately followed by <strong>pspell_new_config()</strong> will produce the exact same
  result. However, after creating a new config, you can also use <strong>pspell_config_*()</strong> functions before
  calling <strong>pspell_new_config()</strong> to take advantage of some advanced functionality.
  
  For more information and examples, check out inline manual pspell website:http://aspell.net/.

<comment>Param:</comment>
  <info>string</info>  <strong>$language</strong>  The language parameter is the language code which consists of the two letter
                     ISO 639 language code and an optional two letter ISO 3166 country code after a
                     dash or underscore.
  <info>string</info>  <strong>$spelling</strong>  The spelling parameter is the requested spelling for languages with more than
                     one spelling such as English. Known values are 'american', 'british', and
                     'canadian'.
  <info>string</info>  <strong>$jargon  </strong>  The jargon parameter contains extra information to distinguish two different
                     words lists that have the same language and spelling parameters.
  <info>string</info>  <strong>$encoding</strong>  The encoding parameter is the encoding that words are expected to be in.  Valid
                     values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine
                     unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be
                     careful when using.

<comment>Return:</comment>
  <info>int</info>  Returns a pspell config identifier, or <info>false</info> on error.


id: pspell_config_data_dir
type: function
doc:
<comment>Description:</comment>
  Location of language data files
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.
  
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_config_dict_dir
type: function
doc:
<comment>Description:</comment>
  Location of the main word list
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.
  
  
  Questa funzione, al momento
  non è documentata; è disponibile soltanto la lista degli argomenti.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_config_ignore
type: function
doc:
<comment>Description:</comment>
  Ignore words less than N characters long
  
  <strong>pspell_config_ignore()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>. This
  function allows short words to be skipped by the spell checker.

<comment>Param:</comment>
  <info>int</info>  <strong>$config    </strong>  
  <info>int</info>  <strong>$min_length</strong>  Words less than <strong>$min_length</strong> characters will be skipped.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_config_mode
type: function
doc:
<comment>Description:</comment>
  Change the mode number of suggestions returned
  
  <strong>pspell_config_mode()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>. This function
  determines how many suggestions will be returned by <strong>pspell_suggest()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$config</strong>  
  <info>int</info>  <strong>$mode  </strong>  The mode parameter is the mode in which spellchecker will work. There are several
                modes available: <info>PSPELL_FAST</info> - Fast mode (least number of suggestions) <info>PSPELL_NORMAL</info>
                - Normal mode (more suggestions) <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of
                suggestions)
                
                <info>PSPELL_FAST</info> - Fast mode (least number of suggestions)
                
                <info>PSPELL_NORMAL</info> - Normal mode (more suggestions)
                
                <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of suggestions)

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_config_personal
type: function
doc:
<comment>Description:</comment>
  Set a file that contains personal wordlist
  
  Set a file that contains personal wordlist. The personal wordlist will be loaded and used in
  addition to the standard one after you call <strong>pspell_new_config()</strong>. The file is also the file where
  <strong>pspell_save_wordlist()</strong> will save personal wordlist to.
  
  <strong>pspell_config_personal()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>.

<comment>Param:</comment>
  <info>int   </info>  <strong>$config  </strong>  
  <info>string</info>  <strong>$filename</strong>  The personal wordlist. If the file does not exist, it will be created. The file
                     should be writable by whoever PHP runs as (e.g. nobody).

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_config_repl
type: function
doc:
<comment>Description:</comment>
  Set a file that contains replacement pairs
  
  Set a file that contains replacement pairs.
  
  The replacement pairs improve the quality of the spellchecker. When a word is misspelled, and a
  proper suggestion was not found in the list, <strong>pspell_store_replacement()</strong> can be used to store a
  replacement pair and then <strong>pspell_save_wordlist()</strong> to save the wordlist along with the replacement
  pairs.
  
  <strong>pspell_config_repl()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>.

<comment>Param:</comment>
  <info>int   </info>  <strong>$config  </strong>  
  <info>string</info>  <strong>$filename</strong>  The file should be writable by whoever PHP runs as (e.g. nobody).

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_config_runtogether
type: function
doc:
<comment>Description:</comment>
  Consider run-together words as valid compounds
  
  This function determines whether run-together words will be treated as legal compounds.  That is,
  "thecat" will be a legal compound, although there should be a space between the two words.
  Changing this setting only affects the results returned by <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will
  still return suggestions.
  
  <strong>pspell_config_runtogether()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>.

<comment>Param:</comment>
  <info>int </info>  <strong>$config</strong>  
  <info>bool</info>  <strong>$allow </strong>  <info>true</info> if run-together words should be treated as legal compounds, <info>false</info> otherwise.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_config_save_repl
type: function
doc:
<comment>Description:</comment>
  Determine whether to save a replacement pairs list
    along with the wordlist
  
  <strong>pspell_config_save_repl()</strong> determines whether <strong>pspell_save_wordlist()</strong> will save the replacement
  pairs along with the wordlist. Usually there is no need to use this function because if
  <strong>pspell_config_repl()</strong> is used, the replacement pairs will be saved by <strong>pspell_save_wordlist()</strong>
  anyway, and if it is not, the replacement pairs will not be saved.
  
  <strong>pspell_config_save_repl()</strong> should be used on a config before calling <strong>pspell_new_config()</strong>.

<comment>Param:</comment>
  <info>int </info>  <strong>$config</strong>  
  <info>bool</info>  <strong>$save  </strong>  <info>true</info> if replacement pairs should be saved, <info>false</info> otherwise.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_new
type: function
doc:
<comment>Description:</comment>
  Load a new dictionary
  
  <strong>pspell_new()</strong> opens up a new dictionary and returns the dictionary link identifier for use in other
  pspell functions.
  
  For more information and examples, check out inline manual pspell website:http://aspell.net/.

<comment>Param:</comment>
  <info>string</info>  <strong>$language</strong>  The language parameter is the language code which consists of the two letter
                     ISO 639 language code and an optional two letter ISO 3166 country code after a
                     dash or underscore.
  <info>string</info>  <strong>$spelling</strong>  The spelling parameter is the requested spelling for languages with more than
                     one spelling such as English. Known values are 'american', 'british', and
                     'canadian'.
  <info>string</info>  <strong>$jargon  </strong>  The jargon parameter contains extra information to distinguish two different
                     words lists that have the same language and spelling parameters.
  <info>string</info>  <strong>$encoding</strong>  The encoding parameter is the encoding that words are expected to be in.  Valid
                     values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine
                     unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be
                     careful when using.
  <info>int   </info>  <strong>$mode    </strong>  The mode parameter is the mode in which spellchecker will work. There are
                     several modes available: <info>PSPELL_FAST</info> - Fast mode (least number of suggestions)
                     <info>PSPELL_NORMAL</info> - Normal mode (more suggestions) <info>PSPELL_BAD_SPELLERS</info> - Slow mode
                     (a lot of suggestions) <info>PSPELL_RUN_TOGETHER</info> - Consider run-together words as
                     legal compounds.  That is, "thecat" will be a legal compound, although there
                     should be a space between the two words. Changing this setting only affects the
                     results returned by <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will still return
                     suggestions.  Mode is a bitmask constructed from different constants listed
                     above. However, <info>PSPELL_FAST</info>, <info>PSPELL_NORMAL</info> and <info>PSPELL_BAD_SPELLERS</info> are mutually
                     exclusive, so you should select only one of them.
                     
                     <info>PSPELL_FAST</info> - Fast mode (least number of suggestions)
                     
                     <info>PSPELL_NORMAL</info> - Normal mode (more suggestions)
                     
                     <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of suggestions)
                     
                     <info>PSPELL_RUN_TOGETHER</info> - Consider run-together words as legal compounds.  That is,
                     "thecat" will be a legal compound, although there should be a space between the
                     two words. Changing this setting only affects the results returned by
                     <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will still return suggestions.

<comment>Return:</comment>
  <info>intfalse</info>  Returns the dictionary link identifier on success o <info>false</info> in caso di fallimento.


id: pspell_new_config
type: function
doc:
<comment>Description:</comment>
  Load a new dictionary with settings based on a given config
    
  
  <strong>pspell_new_config()</strong> opens up a new dictionary with settings specified in a config, created with
  <strong>pspell_config_create()</strong> and modified with <strong>pspell_config_*()</strong> functions. This method provides you
  with the most flexibility and has all the functionality provided by <strong>pspell_new()</strong> and
  <strong>pspell_new_personal()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$config</strong>  The <strong>$config</strong> parameter is the one returned by <strong>pspell_config_create()</strong> when the config
                was created.

<comment>Return:</comment>
  <info>intfalse</info>  Returns a dictionary link identifier on success,  o <info>false</info> in caso di fallimento.


id: pspell_new_personal
type: function
doc:
<comment>Description:</comment>
  Load a new dictionary with personal wordlist
  
  <strong>pspell_new_personal()</strong> opens up a new dictionary with a personal wordlist. The wordlist can be
  modified and saved with <strong>pspell_save_wordlist()</strong>, if desired. However, the replacement pairs are not
  saved. In order to save replacement pairs, you should create a config using
  <strong>pspell_config_create()</strong>, set the personal wordlist file with <strong>pspell_config_personal()</strong>, set the file
  for replacement pairs with <strong>pspell_config_repl()</strong>, and open a new dictionary with
  <strong>pspell_new_config()</strong>.
  
  For more information and examples, check out inline manual pspell website:http://aspell.net/.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The file where words added to the personal list will be stored. It should be an
                     absolute filename beginning with '/' because otherwise it will be relative to
                     $HOME, which is "/root" for most systems, and is probably not what you want.
  <info>string</info>  <strong>$language</strong>  The language code which consists of the two letter ISO 639 language code and an
                     optional two letter ISO 3166 country code after a dash or underscore.
  <info>string</info>  <strong>$spelling</strong>  The requested spelling for languages with more than one spelling such as
                     English. Known values are 'american', 'british', and 'canadian'.
  <info>string</info>  <strong>$jargon  </strong>  Extra information to distinguish two different words lists that have the same
                     language and spelling parameters.
  <info>string</info>  <strong>$encoding</strong>  The encoding that words are expected to be in.  Valid values are <return>utf-8</return>,
                     <return>iso8859-*</return>,  <return>koi8-r</return>, <return>viscii</return>,  <return>cp1252</return>, <return>machine unsigned 16</return>,  <return>machine unsigned 32</return>.
  <info>int   </info>  <strong>$mode    </strong>  The mode in which spellchecker will work. There are several modes available:
                     <info>PSPELL_FAST</info> - Fast mode (least number of suggestions) <info>PSPELL_NORMAL</info> - Normal
                     mode (more suggestions) <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of suggestions)
                     <info>PSPELL_RUN_TOGETHER</info> - Consider run-together words as legal compounds.  That is,
                     "thecat" will be a legal compound, although there should be a space between the
                     two words. Changing this setting only affects the results returned by
                     <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will still return suggestions.  Mode is a
                     bitmask constructed from different constants listed above. However,
                     <info>PSPELL_FAST</info>, <info>PSPELL_NORMAL</info> and <info>PSPELL_BAD_SPELLERS</info> are mutually exclusive, so
                     you should select only one of them.
                     
                     <info>PSPELL_FAST</info> - Fast mode (least number of suggestions)
                     
                     <info>PSPELL_NORMAL</info> - Normal mode (more suggestions)
                     
                     <info>PSPELL_BAD_SPELLERS</info> - Slow mode (a lot of suggestions)
                     
                     <info>PSPELL_RUN_TOGETHER</info> - Consider run-together words as legal compounds.  That is,
                     "thecat" will be a legal compound, although there should be a space between the
                     two words. Changing this setting only affects the results returned by
                     <strong>pspell_check()</strong>; <strong>pspell_suggest()</strong> will still return suggestions.

<comment>Return:</comment>
  <info>intfalse</info>  Returns the dictionary link identifier for use in other pspell functions.


id: pspell_save_wordlist
type: function
doc:
<comment>Description:</comment>
  Save the personal wordlist to a file
  
  <strong>pspell_save_wordlist()</strong> saves the personal wordlist from the current session. The location of files
  to be saved specified with <strong>pspell_config_personal()</strong> and (optionally) <strong>pspell_config_repl()</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$dictionary</strong>  A dictionary link identifier opened with <strong>pspell_new_personal()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_store_replacement
type: function
doc:
<comment>Description:</comment>
  Store a replacement pair for a word
  
  <strong>pspell_store_replacement()</strong> stores a replacement pair for a word, so that replacement can be
  returned by <strong>pspell_suggest()</strong> later. In order to be able to take advantage of this function, you
  have to use <strong>pspell_new_personal()</strong> to open the dictionary. In order to permanently save the
  replacement pair, you have to use <strong>pspell_config_personal()</strong> and <strong>pspell_config_repl()</strong> to set the
  path where to save your custom wordlists, and then use <strong>pspell_save_wordlist()</strong> for the changes to
  be written to disk.

<comment>Param:</comment>
  <info>int   </info>  <strong>$dictionary</strong>  A dictionary link identifier, opened with <strong>pspell_new_personal()</strong>
  <info>string</info>  <strong>$misspelled</strong>  The misspelled word.
  <info>string</info>  <strong>$correct   </strong>  The fixed spelling for the <strong>$misspelled</strong> word.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: pspell_suggest
type: function
doc:
<comment>Description:</comment>
  Suggest spellings of a word
  
  <strong>pspell_suggest()</strong> returns an array of possible spellings for the given word.

<comment>Param:</comment>
  <info>int   </info>  <strong>$dictionary</strong>  
  <info>string</info>  <strong>$word      </strong>  The tested word.

<comment>Return:</comment>
  <info>arrayfalse</info>  Returns an array of possible spellings.


id: putenv
type: function
doc:
<comment>Description:</comment>
  Imposta il valore di una variabile d'ambiente
  
  Aggiunge <strong>$setting</strong> nell'ambiente del server.  La variabile d'ambiente esisterà solo per la durata
  della richiesta corrente. Alla fine della richiesta l'ambiente viene ripristinato al suo stato
  originario.

<comment>Param:</comment>
  <info>string</info>  <strong>$setting</strong>  L'impostazione, come <return>"FOO=BAR"</return>

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>getenv()</strong>
   * <strong>apache_setenv()</strong>


id: px_close
type: function
doc:
<comment>Description:</comment>
  Closes a paradox database
  
  Closes the paradox database. This function will not close the file. You will have to call <strong>fclose()</strong>
  afterwards.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>px_open_fp()</strong>
   * The example at <strong>px_new()</strong>


id: px_create_fp
type: function
doc:
<comment>Description:</comment>
  Create a new paradox database
  
  Create a new paradox database file. The actual file has to be opened before with <strong>fopen()</strong>. Make
  sure the file is writable.
  
  Calling this functions issues a warning about an empty tablename which can be safely ignored. Just
  set the tablename afterwards with <strong>px_set_parameter()</strong>.
  
  This function is highly experimental, due to insufficient documentation of the paradox file
  format. Database files created with this function can be opened by <strong>px_open_fp()</strong> and has been
  successfully opened by the Paradox software, but your milage may vary.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc    </strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>resource</info>  <strong>$file     </strong>  File handle as returned by <strong>fopen()</strong>.
  <info>array   </info>  <strong>$fielddesc</strong>  fielddesc is an array containing one element for each field specification. A
                        field specification is an array itself with either two or three elements.The
                        first element is always a string value used as the name of the field. It may
                        not be larger than ten characters. The second element contains the field
                        type which is one of the constants listed in the table Constants for field
                        types. In the case of a character field or bcd field, you will have to
                        provide a third element specifying the length respectively the precesion of
                        the field. If your field specification contains blob fields, you will have
                        to make sure to either make the field large enough for all field values to
                        fit or specify a blob file with <strong>px_set_blob_file()</strong> for storing the blobs. If
                        this is not done the field data is truncated.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


id: px_date2string
type: function
doc:
<comment>Description:</comment>
  Converts a date into a string
    
  
  Turns a date as it stored in the paradox file into human readable format. Paradox dates are the
  number of days since 1.1.0000. This function is just for convenience. It can be easily replaced by
  some math and the calendar functions as demonstrated in the example below.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc </strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>int     </info>  <strong>$value </strong>  Value as stored in paradox database field of type PX_FIELD_DATE.
  <info>string  </info>  <strong>$format</strong>  String format similar to the format used by <strong>date()</strong>. The placeholders support by
                     this function is a subset of those supported by <strong>date()</strong> (Y, y, m, n, d, j, L).

<comment>Return:</comment>
  <info>string</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>px_timestamp2string()</strong>
   * <strong>jdtogregorian()</strong>


id: px_delete
type: function
doc:
<comment>Description:</comment>
  Deletes resource of paradox database
  
  Deletes the resource of the paradox file and frees all memory.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: px_delete_record
type: function
doc:
<comment>Description:</comment>
  Deletes record from paradox database
  
  This function deletes a record from the database. It does not free the space in the database file
  but just marks it as deleted. Inserting a new record afterwards will reuse the space.
  
  This function is only available if pxlib &gt;= 0.6.0 is used.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>int     </info>  <strong>$num  </strong>  The record number is an artificial number counting records in the order as they
                    are stored in the database. The first record has number 0.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: px_get_field
type: function
doc:
<comment>Description:</comment>
  Returns the specification of a single field

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc  </strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>int     </info>  <strong>$fieldno</strong>  Number of the field. The first field has number 0. Specifying a field number
                      less than 0 and greater or equal the number of fields will trigger an error.

<comment>Return:</comment>
  <info>array</info>  Returns the specification of the fieldno'th database field as an associated array. The
         array contains three fields named <return>name</return>, <return>type</return>, and <return>size</return>.


id: px_get_info
type: function
doc:
<comment>Description:</comment>
  Return lots of information about a paradox file

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns an associated array with lots of information about a paradox file. This array is
         likely to be extended in the future.
         
         Version of file multiplied by 10, e.g. 70.
         
         Name of table as stored in the file. If the database was created by pxlib, then this will
         be the name of the file without the extension.
         
         Number of records in this table.
         
         Number of fields in this table.
         
         Number of bytes used for the header. This is usually 0x800.
         
         Number of bytes used for each record. This is the sum of all field sizes (available since
         version 1.4.2).
         
         This value multiplied by 0x400 is the size of a data block in bytes. The maximum number of
         records in a datablock is the integer part of (maxtablesize * 0x400 - 8) / recordsize.
         
         The number of data blocks in the file. Each data block contains a certain number of records
         which depends on the record size and the data block size (maxtablesize). Data blocks may
         not necessarily be completely filled.
         
         Number of fields used for the primary index. The fields do always start with field number
         1.
         
         The DOS codepage which was used for encoding fields with character data. If the target
         encoding is not set with <strong>px_set_targetencoding()</strong> this will be the encoding for character
         fields when records are being accessed with <strong>px_get_record()</strong> or <strong>px_retrieve_record()</strong>.

<comment>See Also:</comment>
   * <strong>px_numfields()</strong>
   * <strong>px_numrecords()</strong>


id: px_get_parameter
type: function
doc:
<comment>Description:</comment>
  Gets a parameter
  
  Gets various parameters.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>string  </info>  <strong>$name </strong>  The <strong>$name</strong> can be one of the following:
                    
                    The name of the table as it will be stored in the database header.
                    
                    The encoding for the output. Data which is being read from character fields with
                    <strong>px_get_record()</strong> or <strong>px_retrieve_record()</strong> is recoded into the targetencoding. If
                    it is not set, then the data will be delivered as stored in the database file.
                    
                    The encoding of the input data which is to be stored into the database. When
                    storing data of character fields in the database, the data is expected to be
                    delivered in this encoding.

<comment>Return:</comment>
  <info>stringfalse</info>  Returns the value of the parameter o <info>false</info> in caso di fallimento.


id: px_get_record
type: function
doc:
<comment>Description:</comment>
  Returns record of paradox database

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>int     </info>  <strong>$num  </strong>  The record number is an artificial number counting records in the order as they
                    are stored in the database. The first record has number 0.
  <info>int     </info>  <strong>$mode </strong>  The optional <strong>$mode</strong> can be <info>PX_KEYTOLOWER</info> or <info>PX_KEYTOUPPER</info> in order to convert the
                    keys of the returned array into lower or upper case. If <strong>$mode</strong> is not passed or
                    is 0, then the key will be exactly like the field name. The element values will
                    contain the field values. NULL values will be retained and are different from
                    0.0, 0 or the empty string. Fields of type <info>PX_FIELD_TIME</info> will be returned as an
                    integer counting the number of milliseconds starting at midnight. A timestamp
                    (<info>PX_FIELD_TIMESTAMP</info>) and date (<info>PX_FIELD_DATE</info>) are floating point respectively
                    int values counting milliseconds respectively days starting at the beginning of
                    julian calendar. Use the functions <strong>px-timestamp2string()</strong> and <strong>px-date2string()</strong> to
                    convert them into a character representation.

<comment>Return:</comment>
  <info>array</info>  Returns the <strong>$num</strong>'th record from the paradox database. The record is returned as an
         associated array with its keys being the field names.

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


id: px_get_schema
type: function
doc:
<comment>Description:</comment>
  Returns the database schema
  
  <strong>px_get_schema()</strong> returns the database schema.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>int     </info>  <strong>$mode </strong>  If the optional <strong>$mode</strong> is <info>PX_KEYTOLOWER</info> or <info>PX_KEYTOUPPER</info> the keys of the returned
                    array will be converted to lower or upper case. If <strong>$mode</strong> is 0 or not passed at
                    all, then the key name will be identical to the field name.

<comment>Return:</comment>
  <info>array</info>  Returns the schema of a database file as an associated array. The key name is equal to the
         field name. Each array element is itself an associated array containing the two fields <return>type</return>
         and <return>size</return>. <return>type</return> is one of the constants in table Constants for field types. <return>size</return> is the
         number of bytes this field consumes in the record. The total of all field sizes is equal to
         the record size as it can be retrieved with <strong>px-get-info()</strong>.


id: px_get_value
type: function
doc:
<comment>Description:</comment>
  Gets a value
  
  Gets various values.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>string  </info>  <strong>$name </strong>  <strong>$name</strong> can be one of the following. numprimkeys The number of primary keys.
                    Paradox databases always use the first <return>numprimkeys</return> fields for the primary index.
                    
                    The number of primary keys. Paradox databases always use the first <return>numprimkeys</return>
                    fields for the primary index.

<comment>Return:</comment>
  <info>floatfalse</info>  Returns the value of the parameter o <info>false</info> in caso di fallimento.


id: px_insert_record
type: function
doc:
<comment>Description:</comment>
  Inserts record into paradox database
  
  Inserts a new record into the database. The record is not necessarily inserted at the end of the
  database, but may be inserted at any position depending on where the first free slot is found.
  
  The record data is passed as an array of field values. The elements in the array must correspond
  to the fields in the database. If the array has less elements than fields in the database, the
  remaining fields will be set to null.
  
  Most field values can be passed as its equivalent php type e.g. a long value is used for fields of
  type PX_FIELD_LONG, PX_FIELD_SHORT and PX_FIELD_AUTOINC, a double values is used for fields of
  type PX_FIELD_CURRENCY and PX_FIELD_NUMBER. Field values for blob and alpha fields are passed as
  strings.
  
  Fields of type PX_FIELD_TIME and PX_FIELD_DATE both require a long value. In the first case this
  is the number of milliseconds since midnight. In the second case this is the number of days since
  1.1.0000. Below there are two examples to convert the current date or timestamp into a value
  suitable for one of paradox's date/time fields.
  
  This function is only available if pxlib &gt;= 0.6.0 is used.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>array   </info>  <strong>$data </strong>  Associated or indexed array containing the field values as e.g. returned by
                    <strong>px_retrieve_record()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns <info>false</info> on failure or the record number in case of success.


id: px_new
type: function
doc:
<comment>Description:</comment>
  Create a new paradox object
  
  Create a new paradox object. You will have to call this function before any further functions.
  <strong>px_new()</strong> does not create any file on the disk, it just creates an instance of a paradox object.
  This function must not be called if the object oriented interface is used. Use <return>new paradox_db()</return>
  instead.

<comment>Return:</comment>
  <info>resource</info>  Returns <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>px_delete()</strong>
   * <strong>px_open_fp()</strong>


id: px_numfields
type: function
doc:
<comment>Description:</comment>
  Returns number of fields in a database
  
  Get the number of fields in a database file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the number of fields in a database file. The return value of this function is
       identical to the element <return>numfields</return> in the array returned by <strong>px_get_info()</strong>.


id: px_numrecords
type: function
doc:
<comment>Description:</comment>
  Returns number of records in a database
  
  Get the number of records in a database file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the number of records in a database file. The return value of this function is
       identical to the element <return>numrecords</return> in the array returned by <strong>px_get_info()</strong>.


id: px_open_fp
type: function
doc:
<comment>Description:</comment>
  Open paradox database
  
  Open an existing paradox database file. The actual file has to be opened before with <strong>fopen()</strong>. This
  function can also be used to open primary index files and tread them like a paradox database. This
  is supported for those who would like to investigate a primary index. It cannot be used to
  accelerate access to a database file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>resource</info>  <strong>$file </strong>  <strong>$file</strong> is the return value from <strong>fopen()</strong> with the actual database file as
                    parameter. Make sure the database is writable if you plan to update or insert
                    records.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>fopen()</strong>
   * The example at <strong>px_new()</strong>


id: px_put_record
type: function
doc:
<comment>Description:</comment>
  Stores record into paradox database
  
  Stores a record into a paradox database. The record is always added at the end of the database,
  regardless of any free slots. Use <strong>px_insert_record()</strong> to add a new record into the first free slot
  found in the database.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc </strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>array   </info>  <strong>$record</strong>  Associated or indexed array containing the field values as e.g. returned by
                     <strong>px_retrieve_record()</strong>.
  <info>int     </info>  <strong>$recpos</strong>  This optional parameter may be used to specify a record number greater than the
                     current number of records in the database. The function will add as many empty
                     records as needed. There is hardly any need for this parameter.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: px_retrieve_record
type: function
doc:
<comment>Description:</comment>
  Returns record of paradox database
  
  This function is very similar to <strong>px_get_record()</strong> but uses internally a different approach to
  retrieve the data. It relies on pxlib for reading each single field value, which usually results
  in support for more field types.
  
  This function is only available if pxlib &gt;= 0.6.0 is used.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>int     </info>  <strong>$num  </strong>  The record number is an artificial number counting records in the order as they
                    are stored in the database. The first record has number 0.
  <info>int     </info>  <strong>$mode </strong>  The optional <strong>$mode</strong> can be <info>PX_KEYTOLOWER</info> or <info>PX_KEYTOUPPER</info> in order to convert the
                    keys into lower or upper case. If <strong>$mode</strong> is not passed or is 0, then the key will
                    be exactly like the field name. The element values will contain the field
                    values. NULL values will be retained and are different from 0.0, 0 or the empty
                    string. Fields of type <info>PX_FIELD_TIME</info> will be returned as an integer counting the
                    number of milliseconds starting at midnight. A timestamp is a floating point
                    value also counting milliseconds starting at the beginning of julian calendar.

<comment>Return:</comment>
  <info>array</info>  Returns the <strong>$num</strong>'th record from the paradox database. The record is returned as an
         associated array with its keys being the field names.

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


id: px_set_blob_file
type: function
doc:
<comment>Description:</comment>
  Sets the file where blobs are read from
  
  Sets the name of the file where blobs are going to be read from or written into. Without calling
  this function, <strong>px_get_record()</strong> or <strong>px_retrieve_record()</strong>  will only return data in blob fields if
  the data is part of the record and not stored in the blob file. Blob data is stored in the record
  if it is small enough to fit in the size of the blob field.
  
  Calling <strong>px_put_record()</strong>, <strong>px_insert_record()</strong>, or <strong>px_update_record()</strong> without calling
  <strong>px_set_blob_file()</strong> will result in truncated blob fields unless the data fits into the database
  file.
  
  Calling this function twice will close the first blob file and open the new one.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc   </strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>string  </info>  <strong>$filename</strong>  The name of the file. Its extension should be <return>.MB</return>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: px_set_parameter
type: function
doc:
<comment>Description:</comment>
  Sets a parameter
  
  Sets various parameters.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>string  </info>  <strong>$name </strong>  Depending on the parameter you want to set, <strong>$name</strong> can be one of the following.
                    
                    The name of the table as it will be stored in the database header.
                    
                    The encoding for the output. Data which is being read from character fields is
                    recoded into the targetencoding.
                    
                    The encoding of the input data which is to be stored into the database.
  <info>string  </info>  <strong>$value</strong>  The value of parameter to set. For inputencoding and targetencoding this must be
                    the name of the encoding as understood by iconv or recode, e.g. iso-8859-1,
                    utf-8, cp850.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>px_get_info()</strong> to determine the DOS code page.


id: px_set_tablename
type: function
doc:
<comment>Description:</comment>
  Sets the name of a table (deprecated)
  
  Sets the table name of a paradox database, which was created with <strong>px_create_fp()</strong>. This function is
  deprecated use <strong>px_set_parameter()</strong> instead.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc    </strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>        </info>  <strong>$tablename</strong>  The name of the table. If it is not set explicitly it will be set to the
                        name of the database file.

<comment>Return:</comment>
  <info>voidfalse</info>  Returns <info>null</info> on success o <info>false</info> in caso di fallimento.


id: px_set_targetencoding
type: function
doc:
<comment>Description:</comment>
  Sets the encoding for character fields (deprecated)
  
  Set the encoding for data retrieved from a character field. All character fields will be recoded
  to the encoding set by this function. If the encoding is not set, the character data will be
  returned in the DOS code page encoding as specified in the database file. The <strong>$encoding</strong> can be any
  string identifier known to iconv or recode. On Unix systems run <return>iconv -l</return> for a list of available
  encodings.
  
  This function is deprecated and should be replaced by calling <strong>px_set_parameter()</strong>.
  
  See also <strong>px_get_info()</strong> to determine the DOS code page as stored in the database file.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc   </strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>string  </info>  <strong>$encoding</strong>  The encoding for the output. Data which is being read from character fields
                       is recoded into the targetencoding.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>false</info> if the encoding could not be set, e.g. the encoding is unknown, or pxlib does
        not support recoding at all. In the second case a warning will be issued.


id: px_set_value
type: function
doc:
<comment>Description:</comment>
  Sets a value
  
  Sets various values.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>string  </info>  <strong>$name </strong>  <strong>$name</strong> can be one of the following.
                    
                    The number of primary keys. Paradox databases always use the first numprimkeys
                    fields for the primary index.
  <info>float   </info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: px_timestamp2string
type: function
doc:
<comment>Description:</comment>
  Converts the timestamp into a string
    
  
  Turns a timestamp as it stored in the paradox file into human readable format. Paradox timestamps
  are the number of miliseconds since 0001-01-02. This function is just for convenience. It can be
  easily replaced by some math and the calendar functions as demonstrated in the following example.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc </strong>  Resource identifier of the paradox database.
  <info>float   </info>  <strong>$value </strong>  Value as stored in paradox database field of type PX_FIELD_TIME, or
                     PX_FIELD_TIMESTAMP.
  <info>string  </info>  <strong>$format</strong>  String format similar to the format used by <strong>date()</strong>. The placeholders support by
                     this function is a subset of those supported by <strong>date()</strong> (Y, y, m, n, d, j, H, h,
                     G, g, i, s, A, a, L).

<comment>Return:</comment>
  <info>string</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

<comment>See Also:</comment>
   * <strong>px_date2string()</strong>
   * <strong>jdtogregorian()</strong>


id: px_update_record
type: function
doc:
<comment>Description:</comment>
  Updates record in paradox database
  
  Updates an exiting record in the database. The record starts at 0.
  
  The record data is passed as an array of field values. The elements in the array must correspond
  to the fields in the database. If the array has less elements than fields in the database, the
  remaining fields will be set to null.
  
  This function is only available if pxlib &gt;= 0.6.0 is used.

<comment>Param:</comment>
  <info>resource</info>  <strong>$pxdoc</strong>  Resource identifier of the paradox database as returned by <strong>px_new()</strong>.
  <info>array   </info>  <strong>$data </strong>  Associated array containing the field values as returned by
                    <strong>px_retrieve_record()</strong>.
  <info>int     </info>  <strong>$num  </strong>  The record number is an artificial number counting records in the order as they
                    are stored in the database. The first record has number 0.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


id: quoted_printable_encode
type: function
doc:
<comment>Description:</comment>
  Convert a 8 bit string to a quoted-printable string
  
  Returns a quoted printable string created according to RFC2045, section 6.7.
  
  This function is similar to <strong>imap_8bit()</strong>, except this one does not require the IMAP module to work.

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

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

<comment>See Also:</comment>
   * <strong>quoted_printable_decode()</strong>
   * <strong>iconv_mime_encode()</strong>


id: radius_acct_open
type: function
doc:
<comment>Description:</comment>
  Creates a Radius handle for accounting

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


id: radius_add_server
type: function
doc:
<comment>Description:</comment>
  Adds a server
  
  <strong>radius_add_server()</strong> may be called multiple times, and it may be used together with
  <strong>radius_config()</strong>. At most 10 servers may be specified. When multiple servers are given, they are
  tried in round-robin fashion until a valid response is received, or until each server's <strong>$max_tries</strong>
  limit has been reached.

<comment>Param:</comment>
  <info>resource</info>  <strong>$radius_handle</strong>  
  <info>string  </info>  <strong>$hostname     </strong>  The <strong>$hostname</strong> parameter specifies the server host, either as a fully
                            qualified domain name or as a dotted-quad IP address in text form.
  <info>int     </info>  <strong>$port         </strong>  The <strong>$port</strong> specifies the UDP port to contact on the server. If port is
                            given as 0, the library looks up the radius/udp or radacct/udp service
                            in the network services database, and uses the port found there.  If no
                            entry is found, the library uses the standard Radius ports, 1812 for
                            authentication and 1813 for accounting.
  <info>string  </info>  <strong>$secret       </strong>  The shared secret for the server host is passed to the <strong>$secret</strong>
                            parameter. The Radius protocol ignores all but the leading 128 bytes of
                            the shared secret.
  <info>int     </info>  <strong>$timeout      </strong>  The timeout for receiving replies from the server is passed to the
                            <strong>$timeout</strong> parameter, in units of seconds.
  <info>int     </info>  <strong>$max_tries    </strong>  The maximum number of repeated requests to make before giving up is
                            passed into the <strong>$max_tries</strong>.

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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


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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

<comment>Return:</comment>
  <info>bool</info>  Restituisce <info>true</info> in caso di successo, <info>false</info> in caso di fallimento.

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


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

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

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


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

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

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


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

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

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


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

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


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

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


