Я использую Smarty, и один из моих разделов показывает имена файлов, включая даты, размер файла, последний доступ и т. Д. …
Я хочу отобразить размер файла в K, если он меньше 1024, в Mb, если меньше 1048576 и т. Д.
Данные (информация о файле) поступают из базы данных (имя, размер файла, дата и т. Д.)
например:
File Mime Size Date Filename1.jpg mime/jpg 14.1Kb 2011/12/12
Есть ли в Smarty модификатор, который делает это?
благодаря
создайте файл в каталоге плагинов: modifier.filesize.php
затем добавьте этот код:
<?php /** * Smarty plugin * @package Smarty * @subpackage PluginsModifier */ /** * Smarty replace modifier plugin * * Type: modifier<br> * Name: filesize<br> * Purpose: show the filesize of a file in kb, mb, gb etc... * * @param string $ * @return string */ function smarty_modifier_filesize($size) { $size = max(0, (int)$size); $units = array( 'b', 'Kb', 'Mb', 'Gb', 'Tb', 'Pb', 'Eb', 'Zb', 'Yb'); $power = $size > 0 ? floor(log($size, 1024)) : 0; return number_format($size / pow(1024, $power), 2, '.', ',') . $units[$power]; } ?>
то вы можете использовать: {$filename.size|filesize}
предполагая, что размер, который вы даете, первоначально находится в байтах,
попробуй это:
{if $size lt 1024} {$size} bytes {elseif $size lt 1048576} {$size / 1024}Kb {else} ... {/if}