>>>ВОПРОСЫ НОВИЧКОВ<<<

347K
.
Кадило крутится, лавэха мутится
DRAGOvrn (29.07.2011/17:03)
на 4.3 можно в грузе файлы перемещать?
Нет.
.
Z3RO

Блин, че в функции getAvatar() не так? Не правильно подбирает формат, точнее вообще не подбирает.

$possibleImgFormats = array('png', 'jpg', 'gif');

class Avatar{
  public $id;
  public $possibleSizes;
  public $size;

  function __construct($id){
    $this->id = $id;
  }

  public function getAvatar($size = 'original', $linked = TRUE)
  {
    global $home, $possibleImgFormats;
    $this->possibleSizes = array('original', '32x32', '100x100');
    if(in_array($size, $this->possibleSizes))
        $this->size = $size;
    else
        $this->size = 'original';
    $format = '';
    $countFormats = count($possibleImgFormats);
    for($i = 0; $i < $countFormats; $i++)
    {
        if(file_exists($home . '/files/avatars/' . $this->id . '/' . $this->size . '.' . $possibleImgFormats[$i]))
            $format = $possibleImgFormats[$i];
    }
    if(!in_array($format, $possibleImgFormats))
        $out = $home . '/images/no_avatar.png';
    else
        $out = $home . '/files/avatars/' . $this->id . '/' . $this->size . '.' . $format;
    $out = '<img src="' . $out . '" alt="Avatar"/>';
    if($linked)
        $out = '<a href="' . $home . '/id' . $this->id . '">' . $out . '</a>';
    return $out;
  }
}
.
Z3RO

Провел отладку и обнаружил, что проблема в цыкле.

Вот этот код:

$countFormats = count($possibleImgFormats);
    for($i = 0; $i < $countFormats; ++$i)
    {
        echo $possibleImgFormats[$i] . ' ';
        if(file_exists($home . '/files/avatars/' . $this->id . '/' . $this->size . '.' . $possibleImgFormats[$i]))
        {
            $format = $possibleImgFormats[$i];
        }
        else
        echo 'error!<br/>';
    }


...выведет

png error!
jpg error!
gif error!

Хотя файл существует. В чем может быть проблема? Пробывал напрямуй через if{...} else if{...} else{...}--та же проблема.
Тому, кто поможет +5
.
Windler
Z3RO (30.07.2011/07:20)
Провел отладку и обнаружил, что проблема в цыкле.

Вот этот код:

[php]
$countFormats = count($possibleImgFormats);
for($i = 0; $i < $countFormats; ++$i)
{
echo $possibleImgFor
$home . '/files/avatars/' . $this->id . '/' . $this->size . '.' . $possibleImgFormats[$i] Выведи это!!!
.
Windler (30.07.2011/07:50)
$possibleImgFormats[$i] ???
$possibleImgFormats[0,1,2 и т.д]
$i = 0, 1 и 2 на 1ой, 2ой и 3ей итерациях соответственно. Ты же помоему пишеш моды, а элементарных вещей не понимаешь.
.
Windler (30.07.2011/07:50)
$home . '/files/avatars/' . $this->id . '/' . $this->size . '.' . $possibleImgFormats[$i] Выведи это!!!
Это я уже пробывал. Выводит нормальный путь, но без формата, тоесть заканчивается точкой.
.
Z3RO (30.07.2011/07:52)
Это я уже пробывал. Выводит нормальный путь, но без формата, тоесть заканчивается точкой.
$possibleImgFormats = array(
0 => 'png',
1 => 'jpg',
2 => 'gif');
Попробуй такой массив
.

Windler, Хотя нет. В цикле выводит нормально с форматом, не работает только проверка на существование файла.

.
Z3RO (30.07.2011/07:55)
Windler, Хотя нет. В цикле выводит нормально с форматом, не работает только проверка на существование файла.
Значит какая то переменная не объявленная, ибо код ну прям всем правильным правильный
.
Windler (30.07.2011/07:59)
Значит какая то переменная не объявленная, ибо код ну прям всем правильным правильный
Да нет. Все обьявлены 100% Впринципе может быть ошибка в файловой системе моего компа. У меня на нем постоянно проблемы с проверкой на существование файлов по отновсительному пути, но здесь же полный путь. Лан буду искать.
Всего: 9861