Немного уточню. file вернет тело файла, но не заголовочную информацию. Чтобы добиться последнего нужно глядеть в сторону file_get_wrapper_data() и $http_response_header, причем работает тот или иной вариант как хочет и где хочет - зависит от настроек сервера. А еще закрадывается подозрение - будет ли работать при считывании файла функцие file() (кстати, в некоторых случаях может быть удобнее file_get_contents())? но при fopen работает... иногда
