我知道,smarty中truncate函数可以实现简单的字符串截取。
但是,我想要将一个字符串比如:“125.50” ,从“.”分割开来,分开后的两个值都需要使用。truncate似乎实现不了。
再比如我想从一个字符串的第N个字符开始截取,而不是从第一个字符。
还有,我希望可以从一个字符串的末尾开始截取,和正常截取的反方向来。这些smarty都可以实现吗? 既然使用了模板,就应该在模板里解决这些问题。
而不是想交给PHP去做,而且模板和程序分割开后,交给PHP程序实现,反倒很麻烦了!望高手赐教!!

解决方案 »

  1.   

    你这个“125.50” ,从“.”分割开来 没必要用truncate吧,在php中用explode不就可以吗,关于字符截取,smarty自己是有turncate,但这个只是一般的用,很多特殊的使用都不行的,都果自己增加或修改,它是smarty的一个插件,位置在smarty/libs/plugins/modifier.truncate.php  如果你要自己写一个截取插件,就直接写好代码后另存到本文件夹中,名字一定要写成modifier.xx.php  这种的样子。
      

  2.   

    嗯,对头。你可以在定义truncate函数的文件中加一个以自己定义的字符串截取函数吗!要用的时候,调用自己写的函数就行了!
      

  3.   

    这种情况 一般是对smarty写一个插件函数就行了!还有,某些smarty直接完成不了的功能,为什么不在php里面整理好再传进samrty呢?对不对·~?
      

  4.   

    满足不了的自己写扩展 个人还是喜欢在php处理 smarty只负责显示
      

  5.   

    有些情况在PHP处理不是很好,既然模板分割了嘛。
    比如125.50 这是个价格的数字。
    比如我有几套模板,一套模板我只需要整数部分。另一套模板我要显示全部的。
    这样针对多个模板就不好使了。
      

  6.   

    你这样也可以,就是我说的那方法。smarty/libs/plugins/这个中增加插件。
      

  7.   

    那关键是smarty中不支持php语法啊。。你肯定得在php处理好了。再传到smarty中。你说的几套模版。不是有$tpl->display('模版页面'); 这句吗。传递不同参数不就行了。