Smarty 获取文件扩展名

发布于 2024-11-14 21:32:38 字数 94 浏览 3 评论 0原文

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

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

is there a way in Smarty to get the file extension of a string. I have been searching for the explode equivalent although can't seem to find anything.

I am wanting to display a different icon based on the type of file eg. doc,docx,pdf

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

山人契 2024-11-21 21:32:38

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

所有 php 函数都可以用作
隐式修饰符,如所示
在上面的例子中。然而,使用
php-functions 作为修饰符有两个
小陷阱:

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

其次 - 如果启用安全性,则所有
php 函数将用作
修饰符必须被声明为可信
在 $modifiers 属性中
安全政策。查看安全
部分了解详细信息。
来源

<?php

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

?>

{* template *}

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

Since you can use php functions as modifiers, you can use the function pathinfo()

All php-functions can be used as
modifiers implicitly, as demonstrated
in the example above. However, using
php-functions as modifiers has two
little pitfalls:

First - sometimes the order of the
function-parameters is not the
desirable one. Formatting $foo with
{"%2.f"|sprintf:$foo} actually works,
but asks for the more intuitive, like
{$foo|string_format:"%2.f"} that is
provided by the Smarty distribution.

Secondly - if security is enabled, all
php-functions that are to be used as
modifiers have to be declared trusted
in the $modifiers property of the
securty policy. See the Security
section for details.
Source

<?php

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

?>

{* template *}

{$filename|pathinfo:$smarty.const.PATHINFO_EXTENSION}
{* outputs 'txt' *}
影子的影子 2024-11-21 21:32:38

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

{$file|regex_replace:"/.*./":""}

它将删除从开始到最后一个点的所有内容。

看看 http://www.smarty.net/docs /en/language.modifier.regex.replace.tpl 了解更多信息。

You can use regex_replace to remove the file portion, e.g. like this:

{$file|regex_replace:"/.*./":""}

Which removes everything from the beginning to the last dot.

have a look at http://www.smarty.net/docs/en/language.modifier.regex.replace.tpl for more information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文