smarty中调用php内置函数

CleverCode发现smarty中调用php内置函数可以通过|实现。|前后没有空格。如果是数组求count需要加上@。

1个参数时候:

{{‘param1‘|functionName}}

例如

{{$tmpStr|strlen}}

2个参数时候:

{{‘param1‘|functionName:‘param2‘}}

{$tmpStr|substr:‘1‘}

多个参数时候:

{{‘param1‘|functionName:‘param2‘:‘param3‘..}}

{{$tmpStr|substr:‘1‘:‘2‘}}

{{‘a‘|str_replace:‘A‘:$tmpStr}}

1 marty判断是否为空

如下代码php分配给tmpStr为空或没分配;那么smarty中输出0。这个是调用了php的内置函数strlen

php代码:

$smarty->assign(‘tmpStr‘,‘‘);

smarty代码:

{{if $tmpStr|strlen > 0 }}

1

{{else}}

0

{{/if}}

2 marty求数组长度

通过php内置的函数is_array和count求得数组长度,如下的代码输出5

php代码:

$smarty->assign(‘tmpArr‘,array(1,2,3,4,5));

smarty代码:

{{if $tmpArr|is_array && $tmpArr|@count > 0}}

{{$tmpArr|@count}}

{{else}}

0

{{/if}}

3 marty字符串替换

如下的代码是将tmpStr中的b替换为c

$smarty->assign(‘tmpStr‘,‘abb‘);

{{‘b‘|str_replace:‘c‘:$tmpStr}}

输出:acc

4 marty截取字段

$smarty->assign(‘tmpStr‘,‘abb‘);

{{$tmpStr|substr:‘1‘}}

输出:bb

{{$tmpStr|substr:‘1‘:‘1‘}}

输出:b

时间: 2024-10-06 00:08:08

smarty中调用php内置函数的相关文章

Matlab.NET混合编程技巧之——直接调用Matlab内置函数(附源码)

原文:[原创]Matlab.NET混合编程技巧之--直接调用Matlab内置函数(附源码) 在我的上一篇文章[原创]Matlab.NET混编技巧之--找出Matlab内置函数中,已经大概的介绍了matlab内置函数在混合编程中的优点,并通过程序找出了matlab中的大部分内置函数,当然更多人关心是如何像我所说得那样,不用直接编译,就直接在C#中调用这些内置函数.本文就带你揭开这些谜团. 声明,这篇文章是需要一点点混合编程基础的,基本概念和过程要懂一点,如果能简单成功混编一个简单的计算或者绘图例子

Python函数的基本定义和调用以及内置函数

首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有很多内建函数,当然随着学习的深入,你也可以学会创建对自己有用的函数.简单的理解下函数的概念,就是你编写了一些语句,为了方便使用这些语句,把这些语句组合在一起,给它起一个名字.使用的时候只要调用这个名字,就可以实现语句组的功能了. 语法如下: # 定义方式 : def functionname([parameterlist]): functionname:函数名 paramet

JS中的日期内置函数

用JS中的日期内置函数实现在页面显示:“今天是:2013年9月26日14:32:45”. var date=new Date(Date.parse('9/26/2013 14:32:45'));   写出JS中声明对象的三种方法. Var obj={ name:名字, Say:function(){ Alert(‘sssss’); } }     Var obj=new Object();     Var obj={} Obj.name=’名字’; Obj.say=function(){ Ale

python中68个内置函数的总结

内置函数 内置函数就是python给你提供的, 拿来直接用的函数, 比如print., input等. 截止到python版本3.6.2 python一共提供了68个内置函数. #68个内置函数 # abs() dict() help() min() setattr() # all() dir() hex() next() slice() # any() divmod() id() object() sorted() # ascii() enumerate() input() oct() sta

【Python】从简单案列中揭示常用内置函数以及数据类型

前面提到了BIF(内置函数)这个概念,什么是内置函数,就是python已经定义好的函数,不需要人为再自己定义,直接拿来就可以用的函数,那么都有哪些BIF呢? 可以在交互式界面(IDLE)输入这段代码,注意是两边都是双下划线 1 dir(__builtins__) 则可以查看不同python版本都有哪些BIF 就看这些就能很明显的看出python3和python2还是有很多区别的,想看哪个BIF的用法就直接help()它看官方文档就行,这里要说的是,python官方的代码其实很少的语法,基本都是很

python中重要的内置函数

all判断是否有bool值为False 1 print(all(['a','',123])) 2 #False #any判断是否有bool值为True 1 print(any(['a','',''])) 2 # True zip,拉链,不止拉两个,可以拉多个 1 l1 = [1,2,3,'ef','rf',6] 2 l2 = ['ew','d',4] 3 l3 = ['fsd',23,43,43,23] 4 print(zip(l1,l2,l3)) 5 for i in zip(l1,l2,l3

写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数

下面代码没有认真看: <?php //二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 function array_sort($arr, $keys, $order = 0) { if (!is_array($arr)) { return false; } $keysvalue = array(); foreach ($arr as $key => $val) { $keysvalue[$key] = $val[$keys]; } if ($

关于 zend studio 中有些php 内置函数没有提示,或是有‘小黄色感叹号’

解决办法: 1.修改项目 .buildpath 文件 <?xml version="1.0" encoding="UTF-8"?> <buildpath> <buildpathentry kind="src" path=""/> <buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE&q

8. Smarty3:模版中的内置函数

smarty3中对内置函数的改动比较大,添加了许多新的功能:变量声明,表达式,流程控制,函数,数组等.但是建议不要在模版中去使用过于复杂的逻辑,而是要尽量将一些程序设计逻辑写到PHP中,并在模版中采用非常简单的语法即可调用.通常只在模版中进行一些如变量输出,流程判断及数组遍历等操作即可. 1. 变量声明 在模版中声明变量或用来在模版运行时为模版变量赋值,这是在Smarty3中新增的功能. 使用{assign},在模版运行时为模版变量或数组元素赋值 和在赋值时使用一些表达式 {$var=...}是