Common Functions
****************

CodeIgniter uses a few functions for its operation that are globally
defined, and are available to you at any point. These do not require
loading any libraries or helpers.

is_php($version)

   Parameters:
      * **$version** ("string") – Version number

   Returns:
      TRUE if the running PHP version is at least the one specified or
      FALSE if not

   Return type:
      "bool"

   Determines if the PHP version being used is greater than the
   supplied version number.

   Example:

      if (is_php('5.3'))
      {
              $str = quoted_printable_encode($str);
      }

   Returns boolean TRUE if the installed version of PHP is equal to or
   greater than the supplied version number. Returns FALSE if the
   installed version of PHP is lower than the supplied version number.

is_really_writable($file)

   Parameters:
      * **$file** ("string") – File path

   Returns:
      TRUE if the path is writable, FALSE if not

   Return type:
      "bool"

   "is_writable()" returns TRUE on Windows servers when you really
   can’t write to the file as the OS reports to PHP as FALSE only if
   the read-only attribute is marked.

   This function determines if a file is actually writable by
   attempting to write to it first. Generally only recommended on
   platforms where this information may be unreliable.

   Example:

      if (is_really_writable('file.txt'))
      {
              echo "I could write to this if I wanted to";
      }
      else
      {
              echo "File is not writable";
      }

   Note:

     See also PHP bug #54709 for more info.

config_item($key)

   Parameters:
      * **$key** ("string") – Config item key

   Returns:
      Configuration key value or NULL if not found

   Return type:
      "mixed"

   The Config Library is the preferred way of accessing configuration
   information, however "config_item()" can be used to retrieve single
   keys. See Config Library documentation for more information.

set_status_header($code[, $text = ''])

   Parameters:
      * **$code** ("int") – HTTP Response status code

      * **$text** ("string") – A custom message to set with the status
        code

   Return type:
      "void"

   Permits you to manually set a server status header. Example:

      set_status_header(401);
      // Sets the header as:  Unauthorized

   See here for a full list of headers.

remove_invisible_characters($str[, $url_encoded = TRUE])

   Parameters:
      * **$str** ("string") – Input string

      * **$url_encoded** ("bool") – Whether to remove URL-encoded
        characters as well

   Returns:
      Sanitized string

   Return type:
      "string"

   This function prevents inserting NULL characters between ASCII
   characters, like Java\0script.

   Example:

      remove_invisible_characters('Java\\0script');
      // Returns: 'Javascript'

html_escape($var)

   Parameters:
      * **$var** ("mixed") – Variable to escape (string or array)

   Returns:
      HTML escaped string(s)

   Return type:
      "mixed"

   This function acts as an alias for PHP’s native
   "htmlspecialchars()" function, with the advantage of being able to
   accept an array of strings.

   It is useful in preventing Cross Site Scripting (XSS).

get_mimes()

   Returns:
      An associative array of file types

   Return type:
      "array"

   This function returns a *reference* to the MIMEs array from
   *application/config/mimes.php*.

is_https()

   Returns:
      TRUE if currently using HTTP-over-SSL, FALSE if not

   Return type:
      "bool"

   Returns TRUE if a secure (HTTPS) connection is used and FALSE in
   any other case (including non-HTTP requests).

is_cli()

   Returns:
      TRUE if currently running under CLI, FALSE otherwise

   Return type:
      "bool"

   Returns TRUE if the application is run through the command line and
   FALSE if not.

   Note:

     This function checks both if the "PHP_SAPI" value is ‘cli’ or if
     the "STDIN" constant is defined.

function_usable($function_name)

   Parameters:
      * **$function_name** ("string") – Function name

   Returns:
      TRUE if the function can be used, FALSE if not

   Return type:
      "bool"

   Returns TRUE if a function exists and is usable, FALSE otherwise.

   This function runs a "function_exists()" check and if the *Suhosin
   extension <http://www.hardened-php.net/suhosin/>* is loaded, checks
   if it doesn’t disable the function being checked.

   It is useful if you want to check for the availability of functions
   such as "eval()" and "exec()", which are dangerous and might be
   disabled on servers with highly restrictive security policies.

   Note:

     This function was introduced because Suhosin terminated script
     execution, but this turned out to be a bug. A fix has been
     available for some time (version 0.9.34), but is unfortunately
     not released yet.
