За последние 24 часа нас посетили 21148 программистов и 1631 робот. Сейчас ищут 1459 программистов ...

getimagesize

Тема в разделе "Прочие вопросы по PHP", создана пользователем Slieptsov, 29 мар 2012.

  1. Slieptsov

    Slieptsov Активный пользователь

    С нами с:
    6 сен 2011
    Сообщения:
    48
    Симпатии:
    0
    Здравствуйте, нужно взять ширину и высоту картинки. Что делаю:
    Код (Text):
    1. <img src="<?php list($width, $height, $type, $attr) = getimagesize('/logo.jpg'); ?> /logo.jpg" width="<?php echo $width ?>" height="<?php echo $height ?>" />
    Так все отлично - ширина и высота просчитывается. Но если я хочу взять эти переменные из другого файла php, то не получается. Что я для этого делаю:
    Код (Text):
    1. function logo_size() {
    2. list($width, $height, $type, $attr) = getimagesize('/logo.jpg');
    3. }
    Ну и в самом шаблоне выставляю такие переменные -
    Код (Text):
    1. width="<?php echo $width ?>" height="<?php echo $height ?>"
    Но в этот раз ширина и высота картинки уже не просчитывается. В чем дело, можете подсказать, пожалуйста?
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Функция должна либо возвратить массив с данными о картинке, либо переменные должны быть глобальными (global $width, например).
    А тут получаются локальные переменные
    function logo_size() {
    list($width, $height, $type, $attr) = getimagesize('/logo.jpg');
    }
    , которые не видны после выхода из функции.
     
  3. Slieptsov

    Slieptsov Активный пользователь

    С нами с:
    6 сен 2011
    Сообщения:
    48
    Симпатии:
    0
    Странно, я объявлял global $width; global $height; Но все равно не выводило.
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    getimagesize('/logo.jpg') - это функция, которая работает с файловой системой, а не разметка для браузера. Файлу надо давать правильный путь. Пока что файл logo.jpg ищется прямо в корне диска.