/** * Retrieves a language definition name based on a file extension. * * Uses the contents of the <var>languages/filetypes</var> file to * guess the language definition name from a file name extension. * This file has to be generated using the * <var>collect-filetypes.php</var> script every time the language * definitions have been changed. * * @param string $ext the file name extension. * @return string The language definition name or <var>NULL</var>. */ public static function nameFromExt($ext) { if (self::$_filetypes === null) { $ft_content = file(__DIR__ . '/Languages/filetypes', 1); foreach ($ft_content as $line) { list($name, $extensions) = explode(':', trim($line)); $extensions = explode(',', $extensions); // Inverse lookup. foreach ($extensions as $extension) { $ft_data[$extension] = $name; } } self::$_filetypes = $ft_data; } $ext = strtolower($ext); return array_key_exists($ext, self::$_filetypes) ? self::$_filetypes[strtolower($ext)] : null; }