Как уже было сказано, вы можете использовать stream_get_meta_data или get_resource_type, чтобы проверить тип ресурса, с которым вы имеете дело.
Лучший и более надежный способ - использовать SPL для работы с файлами, он может избавить от головной боли и сделать вашу жизнь более приятной. Эта возможность еще не очень хорошо документирована, поэтому многие разработчики создают свои собственные оболочки для файловых объектов, но вы можете найти все, что вам нужно здесь:
http://www.php.net/~helly/php/ext/spl/classSplFileObject.html
http://www.php.net/~helly/php/ext/spl/classSplFileInfo.html
Первый содержит методы для чтения, записи, поиска файла и т. Д. ...
Второй предоставляет мета-информацию об объекте, с которым вы работаете, среди прочих есть метод:
$ object-> ISFILE ();