Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > getimagesize - как определить доступен ли файл


Автор: Gold Dragon 31.1.2013, 16:05
Суть в следующем... Есть контент, я прохожусь по содержимому плиганом, который должен обработать картинки.
Плагин выдёргивает все <IMG> и пути до картинок. Картинки могут быть как с этого сайта, так и с "левого"

Получаю информацию о картинке через getimagesize(). НО(!) есть проблема в случае реального отсутствия картинки.. Идёт возврат ошибки E_WARNING или E_NOTICE

Вставляю этот код
Код

// временно отключаем вывод ошибок в случае отсутвствия картинок
$error = error_reporting();
error_reporting(-1);

// получаем информацию о картинке
$info_image = getimagesize($value);

// возвращаем режим отображения ошиток
error_reporting($error);

Но ошибка упрямо генериться.. Что делать? или может как-то по другому это сделать?

Добавлено через 2 минуты и 56 секунд
ps
походу перепутал "Избранное" и "Изображениями"  smile Модераторы, перекиньте в правильный раздел

Автор: MoLeX 31.1.2013, 18:37
Цитата(Gold Dragon @  31.1.2013,  16:05 Найти цитируемый пост)
походу перепутал "Избранное" и "Изображениями"


Gold Dragon, да немного тебя занесло)

Автор: Gold Dragon 31.1.2013, 18:46
ну так ответ то подскажи smile а то приходится мудрить

Добавлено @ 18:47
и кстати, если нет удалённой фотки, то ошибка не генериться, а возвращается только false

Добавлено @ 18:55
вот код которым я обошёл ошибку
Код

// перебираем картинки
foreach($preg_result as $value){

     // Проверяем где находится картинка (внешняя или с сайта
    $parse_url = parse_url($value[2]);
    $parse_site = parse_url(_JLPATH_SITE);

     // Если картинка с этого сайта
    if((isset($parse_url['host']) and $parse_url['host']==$parse_site['host']) or !isset($parse_url['host'])){
           // если доступна           
           if(is_readable(_JLPATH_ROOT.$parse_url['path'])){
                 $value[2] = _JLPATH_SITE . $parse_url['path'];
                 $info_image = getimagesize($value[2]);
           }else{
                 $info_image = false;
           }
     }else{
           $info_image = getimagesize($value[2]);
     }
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)