2011-03-20 4 views
2

У меня есть следующий скрипт, который возвращает высоту и ширину изображения на моем локальном сервере с использованием PHP 5.2.6, но не на моей учетной записи общего хостинга с использованием 5.2.17.getimagesize работает для некоторых изображений, а не других

ini_set('memory_limit', '32M'); 
list($width, $height, $type, $attr) = getimagesize("http://images.jcrew.com/erez4/erez?src=images/eiec/39/39251/39251_WO7826.tif&tmp=prdAr3"); 
echo "<img src=\"http://images.jcrew.com/erez4/erez?src=images/eiec/39/39251/39251_WO7826.tif&tmp=prdAr3\" $attr alt=\"getimagesize() example\" />"; 

Я попытался увеличения memory_limit, как это было предложено в другом вопросе. Получение размеров изображений с других сайтов прекрасно работает как локально, так и удаленно, но для этого сайта только локально. Что может быть?

+2

Возможно, из-за того, что вы пытаетесь использовать удаленный файл, а не локальный, ваш хост может не допускать этого. Из руководства «Он может ссылаться на локальный файл или (** разрешать конфигурацию **) удаленный файл, используя один из поддерживаемые потоки ». –

+0

получение информации о размере отлично работает на всех других сайтах, которые я тестировал как локально, так и удаленно, а не только на этом сайте. – jela

+0

пытаясь указать URL-адрес, он перенаправляет, есть проблема, завиток может следовать за перенаправлениями, получить изображение, и вы можете проверить его размер локально. –

ответ

1

Проверьте, отключен ли allow-url-fopen.

+0

'allow_url_fopen' включен. добавление 'error_reporting (E_ALL);' Я получаю результат 'Notice: getimagesize(): Ошибка чтения! в /hsphere/local/home/url/get_image_size.php в строке 4' при попытке получить размеры изображений с этого сайта, на котором запущен скрипт на удаленном сервере, но не при запуске скрипта на моем локальном сервере. получение изображений с других сайтов прекрасно работает как локально, так и удаленно для других других сайтов, которые я тестировал. – jela

6

Похоже, что ваш общий хостинг может иметь allow_url_fopen отключен. Если вы еще этого не сделали, вы должны настроить error logging и убедиться, что вы не отключите error reporting в своих сценариях. Вероятно, это дает вам сообщение об ошибке, указывающее, почему он терпит неудачу.

+0

enable_url_fopen включен на удаленном сервере. добавление 'error_reporting (E_ALL);' к моему скрипту я получаю результат 'Notice: getimagesize(): Ошибка чтения! в /hsphere/local/home/url/get_image_size.php в строке 4'. Скрипт отлично работает для всех других изображений, которые я тестировал как локально, так и удаленно, но ни один из изображений с этого сайта (удаленно, локально они работают нормально). – jela

+0

@jela: О, это всего лишь один конкретный сайт, из которого вы не можете получить изображения? Похоже, что один сайт может блокировать запросы с вашего сервера. Можете ли вы загрузить изображение с помощью wget или curl? – Anomie

+0

Я могу скачать с curl без проблем, хотя я заметил, что мне нужно использовать 'curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, 1);' чтобы заставить завиток работать. Затем я заметил, что при посещении ссылки на изображение http://images.jcrew.com/erez4/erez?src=images/eiec/39/39251/39251_WO7826.tif&tmp=prdAr3 пересылает меня на http: //images.jcrew. com/erez4/cache/images_eiec_39_39251_39251_WO7826_tif_1c6e0d0967131a2f.jpg, и если я заменил бывшую ссылку последним в моем скрипте, размеры изображения могут быть получены с удаленного сервера. Может ли это быть связано с проблемой? – jela

 Смежные вопросы

  • Нет связанных вопросов^_^