Intereting Posts
Задайте заголовок авторизации с помощью PHP и curl Преобразование HTML в CSV в php? PHP Websocket на веб-сервере Проблемы с json_encode с utf8 ошибка при использовании exec () для вызова скрипта python PHP Регулярное выражение для соответствия ключевому слову вне HTML-тега <a> Попытка получить общую сумму на основе ввода пользователем PHP с открытым исходным кодом для электронной коммерции простое выражение в php, форматирование десятичного числа Есть ли способ безопасно переопределить класс в PHP? Регулярное выражение для преобразования строкового верхнего регистра в нижний регистр в php Как отслеживать время выполнения каждой строки / блока строк / методов в PHP? PHP: ограничение для foreach ()? Первичный ключ + Компонентный первичный ключ, вызывающий проблему в схеме базы данных propel Локатор сервисов, Инъекция зависимостей (и контейнера) и инверсия управления

Как получить расширение изображения с помощью file_get_contents php?

Я пытаюсь скопировать на свой сервер изображение с другого сайта, и я планирую использовать

<? file_put_contents($toPath, file_get_contents($fromPath)); ?> 

Хорошо, но для построения $toPath мне нужно расширение файла. Я знаю, как это сделать, если $fromPath – это нормальный путь с именем файла в конце, но если я использую такой путь, как facebook, используйте http://graph.facebook.com/user_id/picture?type=large как я могу получить расширение?

Спасибо вам всем.

 $size = getimagesize($fromPath); $extension = image_type_to_extension($size[2]); 

Получите размер изображения, возьмите файл типа.

В PHP 5.3 вы можете использовать finfo_file() , см. PHP ref

 file_put_contents($toPath, file_get_contents($fromPath)); $handle = fopen($toPath,'r'); print finfo_file($handle); 

это работает и для не изображений.

Это намного быстрее, чем ответ @ Kolink:

 $extension= end(explode("/", image_type_to_mime_type(exif_imagetype($photoURL)))); 

Не нужно угадывать или использовать типы mime или магические байты. График facebook api всегда возвращает jpegs (см. FB Profile Pic всегда возвращался как «.jpg» для обсуждения).

Но в целом, здесь приведена ссылка на определение типа интеллектуального файла: http://designshack.net/articles/php-articles/smart-file-type-detection-using-php/

Если у вас есть только поток байтов, finfo_file () – ваш друг.

Если у вас есть тип mime, просто используйте это.