# File::Type - phpMan

## NAME
    [File::Type] - determine file type using magic

## SYNOPSIS
        my $ft = [File::Type]->new();

        # read in data from file to $data, then
        my $type_from_data = $ft->checktype_contents($data);

        # alternatively, check file from disk
        my $type_from_file = $ft->checktype_filename($file);

        # convenient method for checking either a file or data
        my $type_1 = $ft->mime_type($file);
        my $type_2 = $ft->mime_type($data);

## DESCRIPTION
    [File::Type] uses magic numbers (typically at the start of a file) to
    determine the MIME type of that file.

    [File::Type] can use either a filename, or file contents, to determine the
    type of a file.

## METHODS
  new
    Returns a new [File::Type] object.

  mime_type($argument)
    Takes either data or a filename, determines what it is, and passes the
    argument through to the relevant method below. If the argument is a
    directory, returns undef.

  checktype_filename($filename)
    Opens $filename (if possible; if not, returns undef) and returns the
    MIME type of the file.

  checktype_contents($data)
    Matches $data against the magic database criteria and returns the MIME
    type of the file.

## TODO
        * Add additional magic match criteria

## BUGS
    None known.

  NOTES
    Some magic definitions in the mime-magic file used in the creation of
    this module vary from those in other apps (eg image/x-png not
    image/png).

## SEE ALSO
    [File::MMagic] and [File::MimeInfo] perform the same job, but have a number
    of problems that led to the creation of this module.

    [File::MMagic] inlines a copy of the magic database, and uses a DATA
    filehandle, which causes problems when running under mod_perl.

    [File::MimeInfo] uses an external magic file, and relies on file
    extensions rather than magic to determine the mime type.

    As a result, [File::Type] uses a separate module and script to create the
    code at the core of this module, which means that there is no need to
    include a magic database at all, and that it is safe to run under
    mod_perl.

    [File::Type::Builder], which generates the code at the heart of this
    module.

## ACKNOWLEDGMENTS
    [File::Type] is built from a mime-magic file from cleancode.org. The
    original can be found at
    <<http://cleancode.org/cgi-bin/viewcvs.cgi/email/mime-magic.mime?rev=1.1>.
    1.1>.

## AUTHOR
    Paul Mison <<pmison@fotango.com>>

## COPYRIGHT
    Copyright 2003-2004 Fotango Ltd.

## LICENSE
    Licensed under the same terms as Perl itself.

