Smarty模板truncate截取字符串函数详解与用法

半杯拿铁
半杯拿铁
发布时间:2026-10-14 | 4人浏览过
原创

在Smarty模板开发中,处理长文本显示时常需截断字符串。truncate函数提供了灵活的截断方案,包括默认截断、自定义长度、添加省略号以及精确字符计数等功能。

truncate函数核心功能

smarty的truncate修饰符用于从字符串开始处截取指定长度的字符。其基本逻辑如下:

  • 默认行为:默认截取长度为80个字符。
  • 智能截断:默认情况下,smarty会尝试在一个单词的末尾截断,以保持语义完整。
  • 精确截断:若需严格按字符数截断(可能截断在单词中间),需设置第三个参数为true。

详细操作步骤与代码示例

第1步:准备测试数据

在PHP文件中定义变量并赋值给模板,以便观察不同截断效果。

复制代码 代码如下:
<?php // index.php $smarty = new Smarty; $smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.'); $smarty->display('index.tpl'); ?>

第2步:配置模板文件

在index.tpl中使用不同的参数调用truncate函数。

注意:下方代码块展示了完整的输出结果对比。

//index.tpl
{$articleTitle}               // 原始输出
{$articleTitle|truncate}      // 默认长度(80)截断
{$articleTitle|truncate:30}   // 截断前30字符(单词末)
{$articleTitle|truncate:30:""}       // 截断前30字符(无后缀)
{$articleTitle|truncate:30:"---"}     // 截断前30字符(后缀“---”)
{$articleTitle|truncate:30:"":true}   // 精确截断30字符(无后缀)
{$articleTitle|truncate:30:"...":true}

输出结果解析

根据上述模板代码,浏览器将显示以下对应内容:

  1. {$articleTitle}: Two Sisters Reunite after Eighteen Years at Checkout Counter.
  2. {$articleTitle|truncate}: Two Sisters Reunite after Eighteen Years at Checkout Counter. (原句未超过80字,故全显示)
  3. {$articleTitle|truncate:30}: Two Sisters Reunite after… (截断至第30字符后的单词边界,默认加“…”)
  4. {$articleTitle|truncate:30:""}: Two Sisters Reunite after (截断后无任何标记)
  5. {$articleTitle|truncate:30:"---"}: Two Sisters Reunite after— (使用自定义分隔符“---”,但此处因刚好在单词边距,显示为一部分)
  6. {$articleTitle|truncate:30:"":true}: Two Sisters Reunite after Eigh (精确到第30个字符,直接切断单词)
  7. {$articleTitle|truncate:30:"...":true}: Two Sisters Reunite after E… (精确到第30个字符,并在切断处附加“...”)

关键参数说明

  • 第一个参数:指定截取的最大字符数。默认为80。
  • 第二个参数:指定截断后追加的字符串(如省略号)。默认为“...”。
  • 第三个参数:布尔值。设为true表示精确按字符数截断(即使切断单词);设为false或省略则表示在最近的单词边界截断。

以上就是Smarty truncate截取字符串函数的详细内容,更多关于Smarty模板技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表