Smarty获取文件扩展名

时间:2011-06-09 19:42:36

标签: php templates smarty smarty3

Smarty中有没有办法获取字符串的文件扩展名。我一直在寻找爆炸等效,虽然似乎找不到任何东西。

我想根据文件类型显示不同的图标,例如。 doc,docx,pdf

2 个答案:

答案 0 :(得分:5)

由于您可以使用php函数作为修饰符,因此可以使用函数pathinfo()

  

所有php函数都可以用作   如所示,隐含地使用修饰语   在上面的例子中。但是,使用   php-functions as modifiers有两个   小陷阱:

     

首先 - 有时是顺序   函数参数不是   理想的。格式化$ foo   {“%2.f”| sprintf:$ foo}实际上有效,   但要求更直观,比如   {$ foo | string_format:“%2.f”}即是   由Smarty发行版提供。

     

其次 - 如果启用了安全性,则全部   php函数,用作   修饰符必须声明为可信   在$的modifiers属性中   安全政策。请参阅安全性   部分了解详情。   Source

<?php

$smarty->assign('filename', 'foo\bar.txt');

?>

{* template *}

{$filename|pathinfo:$smarty.const.PATHINFO_EXTENSION}
{* outputs 'txt' *}

答案 1 :(得分:1)

您可以使用regex_replace删除文件部分,例如像这样:

{$文件| regex_replace: “/.*./”: “”}

从中删除从开头到最后一个点的所有内容。

查看http://www.smarty.net/docs/en/language.modifier.regex.replace.tpl了解详情。