fopen — PHP getimagesize не работает на внешних ссылках

У меня есть некоторые проблемы на моем сервере при запуске getimagesize на удаленных изображениях URL.

Например, если я запускаю этот код на моем локальном сервере, он работает нормально и возвращает ОК:

<?php
$file = 'http://inspiring-photography.com/wp-content/uploads/2012/04/Culla-bay-rock-formations-Isle-of-Uist.jpg';
$pic_size = getimagesize($file);
if (empty($pic_size))
{
die('FALSE');
}
die('OK');

?>

Но если я запускаю тот же код на моем сервере, я не могу заставить его работать должным образом. Можете ли вы помочь определить, какие настройки мне следует включить?

Я думаю, что некоторые из них могут быть вовлечены:

  1. mod_security
  2. безопасный режим
  3. allow_url_fopen

Можете ли вы помочь мне в определении правильной конфигурации, чтобы решить эту проблему?

Заранее большое спасибо.

0

Решение

Ваша проблема связана с allow_url_fopen быть выключенным Либо включите его на своем php.iniили используйте curl чтобы получить изображение:

function getImg($url){
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}

$url = "http://inspiring-photography.com/wp-content/uploads/2012/04/Culla-bay-rock-formations-Isle-of-Uist.jpg";
$raw = getImg($url);
$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);
echo $width." x ".$height;

SRC

4

Другие решения

Вы должны включить allow_url_fopen в вашем php.ini файл, чтобы позволить ему получить доступ к ресурсам, которые не являются локальными.

Это указано в официальном документе getimagesize в описании filename параметр.

1

По вопросам рекламы [email protected]