Есть ссылка типа https://site.com/docs/2342. По этой ссылке лежит файл с неизвестным расширением (.doc, .rar, .xls или какое-нибудь другое).
Скачиваю его следующим образом
file_put_contents("documents/doc1", file_get_contents("https://site.com/docs/2342"));
В итоге я получаю в папке documents файл с названием doc1.
Каким образом я могу узнать расширение скачиваемого файла, чтобы правильно его сохранить?
Вы можете попробовать найти нужную информацию в заголовках ответа:
$content = file_get_contents("https://site.com/docs/2342");
var_dump($http_response_header);
Также можно воспользоваться функцией finfo_buffer
$content = file_get_contents("https://site.com/docs/2342");
$finfo = new finfo(FILEINFO_MIME_TYPE);
$type = $finfo->buffer($content);
Вы получите mime-тип (навроде application/xml; charset=utf-8).
Далее, манипулируя строкой либо по словарю известных вашему приложению mime-типов получаете расширение для сохранения.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей