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
Форумы портала PHP.SU :: Версия для печати :: getimagesize
Форумы портала PHP.SU » PHP » Программирование на PHP » getimagesize

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

1. СамолиРамзи - 20 Октября, 2021 - 15:25:31 - перейти к сообщению
Доброго времени суток! Подскажите пожалуйста есть изображение на удаленном сервере

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);


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

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

Заранее большое спасибо.
2. Vladimir Kheifets - 21 Октября, 2021 - 10:42:18 - перейти к сообщению
СамолиРамзи пишет:
Доброго времени суток! Подскажите пожалуйста есть изображение на удаленном сервере
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
Удачи!
3. СамолиРамзи - 21 Октября, 2021 - 12:04:37 - перейти к сообщению
Большое спасибо за ответ
Я правильно понимаю, что вы запускаете код

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
)


Я делаю все точно также но в ответ я получаю пустой массив
4. Vladimir Kheifets - 21 Октября, 2021 - 21:50:26 - перейти к сообщению
СамолиРамзи пишет:
Я делаю все точно также но в ответ я получаю пустой массив

Вам нужно проверить 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. ?>

Удачи!

 

Powered by ExBB FM 1.0 RC1