PHP getimagesize без доступа к файлу URL - PullRequest
0 голосов
/ 02 декабря 2010

Я использую getimagesize в PHP для получения информации об изображении в моем скрипте ...

$thumb = "http://i.ytimg.com/vi/u6XAPnuFjJc/hqdefault.jpg";
$imageInfo = getimagesize($thumb);

Проблема в том, что на одном из моих серверов возвращается ошибка:

getimagesize () [function.getimagesize]: доступ к файлам URL отключен в конфигурации сервера

Я не смогу исправить эту проблему конфигурации на этом конкретном сервере.Мне интересно, есть ли у кого-нибудь идеи о том, как я могу обойти эту проблему.Можно ли взять изображение, сохранить его во временный файл, а затем использовать getimagesize на основе временного изображения?Как только все это будет сделано, временный файл необходимо будет удалить.

Если это возможно, как бы я это сделал?

Ответы [ 3 ]

1 голос
/ 02 декабря 2010

Похоже, у вас есть fopen() Оболочки URL отключены allow_url_fopen = off.

Вам нужно будет использовать что-то вроде cURL, чтобы загрузить его, а затем запустить на нем list($width, $height) = getimagesize().

0 голосов
/ 02 декабря 2010

Если CURL не включен, вы все равно можете скопировать изображение локально, используя сокеты и HTTP-запрос - вы также можете использовать это для проверки размера файла (заголовок Content-Length), чтобы убедиться, что ваш скрипт не загружает большие файлы (кто-то пытался DOS мой сайт, делая это XD)

0 голосов
/ 02 декабря 2010

Поскольку вы можете изменить конфигурацию сервера, проверьте, включен ли CURL.

Если это так, вы можете использовать CURL для локального копирования изображения и запуска getimagesize на нем.

http://php.net/manual/en/book.curl.php

...