- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我目前在我的 Smarty 模板中的内容:
<div class="tbl_pagination">
{if $pager}{$pager->links}{/if}
<div>
我的 {$pager->links}
将输出这个 HTML:
<div class="tbl_pagination">
<ul><li><a href="javascript:toPage(3)" title="previous page">Back</a></li>
<li><a href="javascript:toPage(1)" title="page 1">1</a></li>
<li><a href="javascript:toPage(2)" title="page 2">2</a></li>
<li><a href="javascript:toPage(3)" title="page 3">3</a></li>
<li class='active'>4</li>
<li><a href="javascript:toPage(5)" title="page 5">5</a></li>
<li><a href="javascript:toPage(6)" title="page 6">6</a></li>
<li><a href="javascript:toPage(7)" title="page 7">7</a></li>
<li><a href="javascript:toPage(5)" title="next page">Next</a></li>
</ul></div>
</div>
我正在尝试替换两个不同的东西:
我想完成删除 the title
属性。
li
拥有类 active
的还需要有一个 a href
。
这是我想要的样子:
<div class="tbl_pagination">
<ul><li><a href="javascript:toPage(3)">Back</a></li>
<li><a href="javascript:toPage(1)">1</a></li>
<li><a href="javascript:toPage(2)">2</a></li>
<li><a href="javascript:toPage(3)">3</a></li>
<li class='active'><a href="#">4</a></li>
<li><a href="javascript:toPage(5)">5</a></li>
<li><a href="javascript:toPage(6)">6</a></li>
<li><a href="javascript:toPage(7)">7</a></li>
<li><a href="javascript:toPage(5)">Next</a></li>
</ul></div>
</div>
这可以在 Smarty 模板系统中使用它们的替换功能来完成吗?
最佳答案
由于您在评论中提到您自己实现了 (2),这里是第一个替换的解决方案,有 2 种方法:
您可以使用 regex_replace :
{$pager->links|regex_replace:'/title="[\w\s]+"/':""}
或者,你可以直接使用 php 的 preg_replace,像这样:
{'/title="[\w\s]+"/'|preg_replace:'':$pager->links}
乍一看这似乎很奇怪,但让我解释一下语法:
Smarty 支持使用 |
(管道)符号将变量/字符串传递给某些 php 函数。但是,随后会使用 :
(冒号)参数传递其他参数。这与 Variable Modifiers 的语法一致
例如,如果您想计算字符串中的字母数,您可以这样做:
{$pager->links|strlen}
如果您想查看值 foo
是否在数组 $bar
中,您可以这样做:
{'foo'|in_array:$bar}
因此,对于看起来像 func($arg1, $arg2, $arg3)
的 php 函数,这转换为 {$arg1|func:$arg2:$arg3}
不用说首选方法是 (1),我只建议第二种方法,因为在我看来,了解它很有趣。
关于php - 使用正则表达式替换 smarty 模板系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26565225/
我有一个多维关联数组,我将其传递给 smarty 模板。我在我的 smarty 模板中使用下面的代码在我的浏览器中生成显示的两个表。 聪明的代码: {foreach from=$allarr key
如何打印聪明的变量的前n个字符,例如{$ var}的前30个字符? 最佳答案 您应该使用truncate修饰符: {$var|truncate:30} 更多信息here。 关于smarty - Sma
我有这个聪明的代码: {iterate from=fruits item=fruit} .... {/iterate} 我想在这个循环内有一个计数器,它接受一个起始值并增加一直到循环继续。 我应该用
我想自动转义所有模板变量,也就是我想转义它们而不必写|escape每时每刻。因此我启用了 $escape_html选项。 然而,显然 Smarty 处理使用 {capture} 创建的变量。以同样的方
我想在不使用循环的情况下获取 smarty 模板中数组的最后一个元素 assign("arr",$arr); 最佳答案 有一种简单的方法可以使用 variable modifier 在您的 Smart
我正在尝试向我的模板添加一些 smarty 到我想要提供的第一个元素 以及下一个元素 我尝试做这样的事情: {foreach $imageCollection as $image key=s
现在,我的日期显示如下: 19\06\2013 我想要的是这个: 19\6\2013 我目前的 smarty 代码是: {$variable|date_format:"%e\%m\%Y"} 我尝试使
我已经为 smarty 模板创建了一个文件夹结构 f .f1 ..template1.tpl ..test.tpl template1.tpl the template_dir path is poi
我正在尝试向我的模板添加一些 smarty 到我想要提供的第一个元素 以及下一个元素 我尝试做这样的事情: {foreach $imageCollection as $image key=s
我有一个“links.tpl”文件,其中包含具有许多变量的行,如下所示 {assign var=link_main value="index.php"} {assign var=link_log
如何使用Smarty获取URL,类似于JavaScript中的window.location? 我做到了 {$smarty.server.PHP_SELF} 但它不起作用。 最佳答案 你也可以使用这个
我将 Smarty 用于服务器端模板,我想将 Handlebars.js 用于客户端模板,但 Smarty 原因是错误,因为 Handlebars 使用与 Smarty 相同的大括号。 我可以在 Sm
我是 Smarty 的新手。我想对 smarty 中的数组元素进行 mod 操作。以下是我试图实现的代码片段: {if {$que_seq_no}.{$sub_ques_no+1} % 10 == 1
我正在尝试在表单中添加新的谷歌分析事件。所以我有这样的事情: Button 1 到目前为止,一切都很好。但我得到了这个奇怪的聪明错误: Fatal error: Uncaught e
我想用 smarty 编码一个 url。 $var 包含我的数据网址 最佳答案 与 escape modifier您可以设置可选的escape_type 'url' 以返回rawurlencode
哪种将我网站的模板化部分组合在一起的方法是最佳做法?我更喜欢第一种解决方案,但我不确定使用多次调用 display() 是一种好的做法。我正在寻找易于维护和速度。 display('header.tp
我们在所有前端模板中大量使用 Smarty。我观察到以下情况: 当我的Smarty模板类似如下: {if $a == 'A'} {$var1} {else}
在某些项目中,我必须使用 Perl 和 Template Toolkit在其他使用 PHP 和 Smarty模板。您能否以某种方式将两者配置为具有每种语言的公共(public)子集,以便您可以在 sm
如果它为空需要另一个结果,我有聪明的值(value) {get_video_meta video_id=$video_data.id key='test'} 这个值打印“测试”如果这个值是空的否则我该
PHP Smarty 的修改器插件可以访问 Smarty 对象吗? block 和 function 插件类型都将当前的 Smarty 对象作为参数。即 function smarty_functio
我是一名优秀的程序员,十分优秀!