Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив в Smarty 
V
    Опции темы
Casy
Дата 28.1.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 28.1.2009

Репутация: нет
Всего: нет



Прошу помощи разобраться с массивом!
Вот код php

Код

$dir=opendir($path); 
    while ($file = readdir ($dir)) { 
        if ($file != "." && $file != ".." && eregi("\.zip",$file)) { 
            
        $files[]=$file;
        }
        
            $smarty->assign("files", $files);
          $smarty->assign("path", $path);
      
      $smarty->assign("size", bcdiv(filesize($path.$file),1024,1));
      $smarty->assign("date", date("Y-m-d  H:i",filemtime($path.$file)));
      
           
    }
      
         
    closedir($dir);


А вот код шаблона
Код

{section name=files loop=$files}
 <tr><td>{$files[files]}</td>
 <td>
 {section name=size loop=$size}
    {$size[size]}
 {/section}
 kB</td>
 
 <td>
 {section name=date loop=$date}
 {$date[date]}
 {/section}</td>

{/section}


Так вот, получается, что переменная $files выводиться правильно, а вот $size выводит только воследнее значение

Файл               Размер                              Дата
1.zip    37.8 kB              2 0 0 9 - 0 1 - 2 8 0 6 : 1 4    
2.zip    37.8 kB              2 0 0 9 - 0 1 - 2 8 0 6 : 1 4 
6.zip    37.8 kB                          2 0 0 9 - 0 1 - 2 8 0 6 : 1 4

Размер всегда один 37.8 kB    то есть последный, и так же дата!
В чем дело?    

Это сообщение отредактировал(а) Casy - 28.1.2009, 11:58
PM MAIL   Вверх
oksale
Дата 28.1.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 17.6.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 9



А если так сделать:
Код

$dir=opendir($path); 
while ($file = readdir ($dir)) { 
        if ($file != "." && $file != ".." && eregi("\.zip",$file)) {      
            $files[]=array('file'=>$file, 'size'=>bcdiv(filesize($path.$file),1024,1), 'date'=>date("Y-m-d  H:i",filemtime($path.$file)));
        }
}

$smarty->assign("files", $files);
$smarty->assign("path", $path);
              
closedir($dir);


И уже в шаблоне вывод:
Код

{foreach from=$files key=key item=item name="file" }
    <tr>
    <td>{$item.file}</td>
    <td>{$item.size}</td>
    <td>{$item.date}</td>
    </tr>
{/foreach}


У тебя все как то намешано: файл ты проверяешь, а размер файла сохраняешь вне зависимости от того, записал ты его в массив или нет.
И переменную $path зачем в массиве записывать?

Код написан навскидку, надо проверять.

Это сообщение отредактировал(а) oksale - 28.1.2009, 12:48
--------------------
WBR, oksale
PM MAIL ICQ   Вверх
Casy
Дата 28.1.2009, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 28.1.2009

Репутация: нет
Всего: нет



Спасибо oksale за все, все работает!  smile 

Проблема решена!


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.