Smarty 有没有办法获取字符串的文件扩展名。我一直在寻找爆炸等价物,但似乎找不到任何东西。
我想根据文件类型显示不同的图标,例如。文档,docx,pdf
由于可以使用 php 函数作为修饰符,因此可以使用该函数pathinfo()
如上例所示,所有 php 函数都可以隐式用作修饰符。然而,使用 php-functions 作为修饰符有两个小陷阱:
首先 - 有时函数参数的顺序不是理想的。使用 {"%2.f"|sprintf:$foo} 格式化 $foo 确实有效,但要求更直观,例如 Smarty 发行版提供的 {$foo|string_format:"%2.f"}。
其次 - 如果启用了安全性,所有要用作修饰符的 php 函数都必须在安全策略的 $modifiers 属性中声明为受信任。有关详细信息,请参阅安全部分。 资源
<?php
$smarty->assign('filename', 'foo\bar.txt');
?>
{* template *}
{$filename|pathinfo:$smarty.const.PATHINFO_EXTENSION}
{* outputs 'txt' *}
您可以使用 regex_replace 删除文件部分,例如:
{$file|regex_replace:"/.*./":""}
这会删除从开始到最后一个点的所有内容。
查看http://www.smarty.net/docs/en/language.modifier.regex.replace.tpl了解更多信息。