smarty中先strip_tags过滤html标签后truncate截取文章运用
在Web开发过程中,经常需要对从数据库或外部资源中获取的内容进行展示。由于这些内容可能含有HTML或XML标签,直接展示可能会引起跨站脚本攻击(XSS)或格式错误。为了解决这个问题,以及确保内容按照预期的格式和长度显示, Smarty 模板引擎提供了过滤功能。其中,`strip_tags` 和 `truncate` 是两个非常有用的过滤器。 我们来解释 `strip_tags` 函数。`strip_tags` 函数的主要作用是从字符串中去除HTML和PHP标签。它保留了字符串中的文本,移除了字符串中的HTML标签。这个函数对于防止XSS攻击非常有用,同时也用于清理输入数据。例如,当用户提交评论或文章,服务器端就需要使用这个函数来确保不会执行恶意的脚本代码。`strip_tags` 函数的语法是:`strip_tags(string, allowable_tags)`,其中`string`是要处理的字符串,`allowable_tags`是一个可选参数,用来指定允许保留的标签。 接下来,我们探讨 `truncate` 函数。`truncate` 函数用于截取字符串到指定的长度,并且可以选择性地在截取后添加省略号或其他指定的字符串,以表示被截断的部分。这个功能对于摘要显示非常有用,允许页面在有限的空间内显示更多的信息。`truncate` 函数的常见用法是:`truncate(string, length, truncate_string, preserve_words)`,其中`string`是原始字符串,`length`是截取后字符串的长度,`truncate_string`是截取后的附加字符串,`preserve_words`是一个布尔值,用来控制是否保留完整的单词。 在Smarty模板中,通过管道符号(`|`)可以将过滤器应用于变量。在给定的文件片段中,演示了如何在Smarty模板中连续使用`strip_tags`和`truncate`来处理文章内容。具体来说,首先将文章的标题通过`strip_tags`处理,移除标题中所有的HTML标签,然后将处理后的结果在模板中显示出来。接下来,对文章的内容使用`truncate`函数进行截取,这里假设文章内容存储在`$article.content`变量中,截取长度设置为35个字符,并在截取的末尾添加省略号表示还有更多内容。 具体来看代码实现: ```php $smarty=new Smarty; $smarty->assign('articleTitle', "BlindWomanGets<span style='font-family:&#39;helvetica;'</span>fromDad sheHasn'tSeenin<strong>years</strong>."); $smarty->display('index.tpl'); ``` 以及模板文件 `index.tpl` 中的内容: ``` {$articleTitle} {$articleTitle|strip_tags} ``` 上面PHP代码将文章标题赋值给了Smarty变量`articleTitle`,并通过`strip_tags`过滤器处理。在模板文件中,可以看到原文和去标签后的内容。 对于文章内容截取的实现: ```php {$article.content|truncate:35:”…”:true} ``` 这段代码展示了如何在Smarty模板中使用`truncate`过滤器将文章内容截取到35个字符长度,并在末尾添加省略号。布尔值`true`的使用保证了截取操作在最后一个空格处结束,以避免单词被截断。 注意,由于一些外部因素,例如OCR扫描错误或者识别不准确,生成的文档可能会有识别错误或者漏识别的个别字。在实际应用中,应当对这些情况进行处理,以避免影响最终用户看到的内容质量。对于可能的OCR错误,可以通过程序逻辑进行纠正,或者手动编辑校对。在上面的例子中,我们假设错误已经被修正,并且内容是准确的。
- 粉丝: 6
- 资源: 917
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 机械手自动排列控制PLC与触摸屏程序设计
- uDDS源程序publisher
- 中国风格, 节日 主题, PPT模板
- 生菜生长记录数据集.zip
- 微环谐振腔的光学频率梳matlab仿真 微腔光频梳仿真 包括求解LLE方程(Lugiato-Lefever equation)实现微环中的光频梳,同时考虑了色散,克尔非线性,外部泵浦等因素,具有可延展
- 企业宣传PPT模板, 企业宣传PPT模板
- jetbra插件工具,方便开发者快速开发
- agv 1223.fbx
- 全国职业院校技能大赛网络建设与运维规程
- 混合动力汽车动态规划算法理论油耗计算与视频教学,使用matlab编写快速计算程序,整个工程结构模块化,可以快速改为串联,并联,混联等 控制量可以快速扩展为档位,转矩,转速等 状态量一般为SOC,目