/**
* Detect module name by file
*/
function debugger_api_module_via_file($file) {
static $mods;
if (isset($mods[$file])) { // if already saved...
return $mods[$file]; // ...get from cache
}
$mods[$file] = '(unknown)';
if (!strpos($file, '/') !== FALSE || strpos($file, 'includes/') ===
0) {
$mods[$file] = 'Drupal';
} else if (($extension = end(explode('.', ($filename =
basename($file))))) == 'module') { // check for .module extension and
get the name
$mods[$file] = substr($filename, 0, -1-strlen($extension));
} else {
$dirname = $file;
do {
if (($dirname = dirname($dirname)) && (strpos($dirname, '/') ===
FALSE)) {
$mods[$file] = '(unknown)';
break;
}
} while(!($mods[$file] = db_result(db_query("SELECT name FROM
{system} WHERE filename LIKE '%s%%'", $dirname))));
} // end: else
return $mods[$file];
}
This is now a part of the Debugger module.
http://drupalcode.org/viewvc/drupal/contributions/modules/debugger/debugger.api.inc?view=markup