Какой самый простой и быстрый способ получить тип MIME / Media / Content для данного URL-адреса?

#php #mime-types #content-type #file-type #media-type

#php #mime-типы #content-type #тип файла #тип носителя

Вопрос:

Итак, я собираюсь перенести файл с удаленного сервера на свой сервер, но перед его передачей я хочу знать, что это за файл. Если это HTML-файл, я буду обращаться с ним определенным образом, если это PDF-файл, я буду обращаться с ним по-другому, а если, например, это exe-файл, я вообще не хочу его передавать.

Все, что мне нужно, это URL-адрес. Теперь, если этот URL-адрес является явным (т.е. http://example.com/file.pdf ) это не проблема, я могу просто проверить расширение файла, и мы разобрались. Однако мне может быть предоставлен только такой URL, как http://example.com и это может быть что угодно.

Можно ли проверить (с помощью PHP), какой это тип файла, прежде чем я его загружу?

Редактировать: я буду использовать cURL для передачи файла, но я считаю, что curl_getinfo может быть вызван только после передачи файла?

Ответ №1:

Попробуйте использовать функцию PHP get_headers, например:

 $h = get_headers("http://google.com", $format = 1);
$content_type = $h["Content-Type"];
// and now parse what you want from array
  

Ответ №2:

Используя дескриптор fopen, вы можете затем вызвать stream_get_meta_data() для него.