How can I tell if a file is text using PHP?

Stephen Fuhry picture Stephen Fuhry · Sep 8, 2010 · Viewed 7.1k times · Source

I'm making a search engine for our gigantic PHP codebase.

Given a filepath, how can I determine with some degree of certainty whether a file is a text file, or some other type? I'd prefer not to have to resort to file extensions (like substr($filename, -3) or something silly), as this is a linux based filesystem, so anything goes as far as file extensions are concerned.

I'm using RecursiveDirectoryIterator, so I have those methods available too..

Answer

Bill Karwin picture Bill Karwin · Sep 8, 2010

Try the finfo_file() function.

Here's a blog describing its usage: Smart File Type Detection Using PHP