6.x common.inc drupal_parse_info_file($filename)
7.x common.inc drupal_parse_info_file($filename)

Parses Drupal module and theme .info files.

Info files are NOT for placing arbitrary theme and module-specific settings. Use variable_get() and variable_set() for that.

Information stored in a module .info file:

  • name: The real name of the module for display purposes.
  • description: A brief description of the module.
  • dependencies: An array of dependency strings. Each is in the form 'project:module (versions)'; with the following meanings:

    • project: (optional) Project shortname, recommended to ensure uniqueness, if the module is part of a project hosted on drupal.org. If omitted, also omit the : that follows. The project name is currently ignored by Drupal core but is used for automated testing.
    • module: (required) Module shortname within the project.
    • (versions): Optional version information, consisting of one or more comma-separated operator/value pairs or simply version numbers, which can contain "x" as a wildcard. Examples: (>=7.22, <7.28), (7.x-3.x).
  • package: The name of the package of modules this module belongs to.

See forum.info for an example of a module .info file.

Information stored in a theme .info file:

  • name: The real name of the theme for display purposes.
  • description: Brief description.
  • screenshot: Path to screenshot relative to the theme's .info file.
  • engine: Theme engine; typically phptemplate.
  • base: Name of a base theme, if applicable; e.g., base = zen.
  • regions: Listed regions; e.g., region[left] = Left sidebar.
  • features: Features available; e.g., features[] = logo.
  • stylesheets: Theme stylesheets; e.g., stylesheets[all][] = my-style.css.
  • scripts: Theme scripts; e.g., scripts[] = my-script.js.

See bartik.info for an example of a theme .info file.


$filename: The file we are parsing. Accepts file with relative or absolute path.

Return value

The info array.

See also


10 calls to drupal_parse_info_file()
drupal_required_modules in includes/module.inc
Returns an array of modules required by core.
drupal_system_listing in includes/common.inc
Returns information about system object files (modules, themes, etc.).
install_profile_info in includes/install.inc
Retrieves information about an installation profile from its .info file.
ParseInfoFilesTestCase::testParseInfoFile in modules/simpletest/tests/common.test
Parse an example .info file an verify the results.
system_modules_uninstall_confirm_form in modules/system/system.admin.inc
Confirm uninstall of selected modules.

... See full list


includes/common.inc, line 7477
Common functions that many Drupal modules will need to reference.


function drupal_parse_info_file($filename) {
  $info =& drupal_static(__FUNCTION__, array());
  if (!isset($info[$filename])) {
    if (!file_exists($filename)) {
      $info[$filename] = array();
    else {
      $data = file_get_contents($filename);
      $info[$filename] = drupal_parse_info_format($data);
  return $info[$filename];


rymo’s picture

For Drupal 8, see InfoParser::parse.

ijortengab’s picture

i have build function to convert array (or object) to string with file .info format
check it out: http://viper-7.com/CsoLK0

kenorb’s picture

To convert it back into info string format, you may use Feature module functions for that, e.g.:

$module = "MYMODULE";
$path = drupal_get_path("module", $module) . "/" . $module . ".info";
$info = drupal_parse_info_file($path);
module_load_include('inc', 'features', 'features.export');
print features_export_info($info);