Smarty Получить расширение файла - PullRequest
1 голос
/ 09 июня 2011

есть ли в Smarty способ получить расширение файла для строки.Я искал эквивалент взрыва, хотя не могу ничего найти.

Я хочу отобразить другой значок в зависимости от типа файла, например.док, докс, pdf

Ответы [ 2 ]

5 голосов
/ 10 июня 2011

Поскольку вы можете использовать функции 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' *}
1 голос
/ 09 июня 2011

Вы можете использовать regex_replace для удаления части файла, например, как это:

{$ файл | regex_replace: "/.*./": ""}

Что удаляет все от начала до последней точки.

посмотрите на http://www.smarty.net/docs/en/language.modifier.regex.replace.tpl для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...