Smarty Получить расширение файла
Есть ли способ в Smarty, чтобы получить расширение файла строки. Я искал эквивалент взрыва, хотя не могу ничего найти.
Я хочу отобразить другой значок в зависимости от типа файла, например. DOC, DOCX, PDF
2 ответа
Поскольку вы можете использовать функции PHP в качестве модификаторов, вы можете использовать функцию pathinfo()
Все php-функции могут быть неявно использованы в качестве модификаторов, как показано в примере выше. Однако использование php-функций в качестве модификаторов имеет две небольшие ловушки:
Во-первых, иногда порядок функций-параметров не желателен. Форматирование $foo с помощью {"%2.f"|sprintf:$foo} на самом деле работает, но требует более интуитивно понятного, например {$foo|string_format:"%2.f"}, предоставляемого дистрибутивом Smarty.
Во-вторых, если включена защита, все php-функции, которые будут использоваться в качестве модификаторов, должны быть объявлены доверенными в свойстве $ modifiers политики securty. Подробнее смотрите в разделе "Безопасность". Источник
<?php
$smarty->assign('filename', 'foo\bar.txt');
?>
{* template *}
{$filename|pathinfo:$smarty.const.PATHINFO_EXTENSION}
{* outputs 'txt' *}
Вы можете использовать regex_replace для удаления части файла, например, так:
{$ Файл |regex_replace:"/.*./":""}
Который удаляет все от начала до последней точки.
загляните на http://www.smarty.net/docs/en/language.modifier.regex.replace.tpl для получения дополнительной информации.