# 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.