Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: getimagesize

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: getimagesize возвращает пустоту, хотя изображение есть
СамолиРамзи
Отправлено: 20 Октября, 2021 - 15:25:31
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Окт. 2021  


Помог: 0 раз(а)




Доброго времени суток! Подскажите пожалуйста есть изображение на удаленном сервере

PHP:
скопировать код в буфер обмена
  1. $picture = 'https://olmeko.ru/upload/iblock/0f9/Olimp-15-shimo.jpg';


Изображение существует. Но getimagesize возвращает ответ, что изображения нет.

PHP:
скопировать код в буфер обмена
  1. $size = getimagesize($picture);
  2. if($size === false)
  3. {echo 'Нет изображения';}
  4. else
  5. {echo 'Есть изображение';}


is_file Так же возвращает ответ, что изображения не существует.

PHP:
скопировать код в буфер обмена
  1. list($width, $height) = getimagesize($picture);
  2. $arr = array('h' => $height, 'w' => $width );
  3.  
  4. print_r($arr);


Так же возращает пустой массив.

Но если зайти на эту ссылку, видно, что изображение есть.

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

(Отредактировано автором: 20 Октября, 2021 - 15:32:47)

 
 Top
Vladimir Kheifets
Отправлено: 21 Октября, 2021 - 10:42:18
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




СамолиРамзи пишет:
Доброго времени суток! Подскажите пожалуйста есть изображение на удаленном сервере
PHP:
скопировать код в буфер обмена
  1. $picture = 'https://olmeko.ru/upload/iblock/0f9/Olimp-15-shimo.jpg';

Изображение существует. Но getimagesize возвращает ответ, что изображения нет.


Добрый день!
PHP:
скопировать код в буфер обмена
  1. <?
  2.     $picture = 'https://olmeko.ru/upload/iblock/0f9/Olimp-15-shimo.jpg';
  3.     $size = getimagesize($picture);
  4.     echo "<pre>";
  5.     print_r($size);
  6.  
  7. /*
  8. Array
  9. (
  10.     [0] => 649
  11.     [1] => 433
  12.     [2] => 2
  13.     [3] => width="649" height="433"
  14.     [bits] => 8
  15.     [channels] => 3
  16.     [mime] => image/jpeg
  17. )
  18. */
  19. ?>


Цитата:
is_file(string $filename): bool
Определяет, является ли файл обычным файлом.
Список параметров
filename
Путь к файлу.

https://www.php.net/manual/ru/fu...tion.is-file.php
Удачи!

(Отредактировано автором: 21 Октября, 2021 - 10:49:20)

 
 Top
СамолиРамзи
Отправлено: 21 Октября, 2021 - 12:04:37
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Окт. 2021  


Помог: 0 раз(а)




Большое спасибо за ответ
Я правильно понимаю, что вы запускаете код

PHP:
скопировать код в буфер обмена
  1.  
  2. $picture = 'https://olmeko.ru/upload/iblock/0f9/Olimp-15-shimo.jpg';
  3.     $size = getimagesize($picture);
  4.     echo "<pre>";
  5.     print_r($size);
  6.  


И ответ вы получаете

Цитата:

Array
(
[0] => 649
[1] => 433
[2] => 2
[3] => width="649" height="433"
[bits] => 8
[channels] => 3
[mime] => image/jpeg
)


Я делаю все точно также но в ответ я получаю пустой массив

(Отредактировано автором: 21 Октября, 2021 - 12:05:02)

 
 Top
Vladimir Kheifets
Отправлено: 21 Октября, 2021 - 21:50:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




СамолиРамзи пишет:
Я делаю все точно также но в ответ я получаю пустой массив

Вам нужно проверить allow_url_fopen в php.ini. Если значение off, измените на on.
Если allow_url_fopen включён, то проблема в настройках сервера safe_mode и mod_security,
кототорые возможно Вы не сможете изменить.
В этом случае попытайтесь для получения размеров картинки использовать curl и GDLib
PHP:
скопировать код в буфер обмена
  1. <?
  2. function getImg($url){
  3.     $curl = curl_init($url);
  4.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5.     $data = curl_exec($curl);
  6.     curl_close($curl);
  7.     return $data;
  8. }
  9.  
  10. $url = "https://olmeko.ru/upload/iblock/0f9/Olimp-15-shimo.jpg";
  11. $str = getImg($url);
  12. $img = imagecreatefromstring($str);
  13. $width = imagesx($img);
  14. $height = imagesy($img);
  15. echo "width=$width  height=$height";
  16. /*
  17. width=649  height=433
  18. */
  19. ?>

Удачи!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB