第一次搞PHP,Smarty 模板框架,3.0.8版本
{{foreach $NewsRotaryView as $value}}
<div>
<a lazyload="{{$value.bpic|replace:"_s":"_b"}}"></a>
<p>{{$value.title|truncate:30}}</p>
</div>
{{/foreach}}
|replace:"_s":"_b"
|truncate:30
这个2个,都报错,写法是看,Smarty 文档写的,不知道对不对,和版本有没关系,或者还是什么地方没有配置好。
"{{" 双大括号是我自定义配置的,这个没问题。
求指点。
没记错的话,replace和truncate都是插件,看看这两个插件在吗
插件不在会报错的
是配置文件里面,没有配置插件,导致找不到插件。缺少:$this->setPluginsDir(array(SMARTY_PLUGINS_DIR,'/common/smarty/plugins/'));感谢您的解答。回复 @Enterprise:没有错误提示吗?--汗,这2个不是,smarty自带的吗,这个还真不知道是插件,一直是搞C#的,明天回公司在研究下,谢谢啦。smarty这玩意就是一跎屎,果断放弃它,才能拿高薪。回复 @月影又无痕:也就是说高薪人员,连这个问题都解决不了,还是不屑解决。我觉得,你的薪水低,与这东西的影响有关系。请先解决问题,在说话把错误贴出来。虽然也有用过Smarty~现在看依然觉得很......头大 @欣儿呃~就是把模板的处理放到前端,后端只返回JSON吗?youku的体验做的很差哈哈回复 @ljz:不是。JS框架 @EnterprisePHP本身就是一个很好的模板引擎不需要第三方的介入了~~性能没的说 @欣儿改成Smarty???回复 @Enterprise:现在看的最多的是js的前端框架。土豆,优酷这些都在朝这方面改版 <ul><li>友情链接:</li><{foreachfrom=$link_dataitem=link_data}> <li><atarget="_blank"title="<{$link_data.note}>"><{$link_data.name}></a></li><{/foreach}></ul>搞定,换了一个方法:
写法:{{$value.title|mb_substr:0:5:'utf-8'}}这样就对了,上面写错了,应该还是缺少,插件方法。mb_substr这个好像是PHP自带的方法。
Smarty查看了下,插件:smarty/plugins/modifier.truncate.php有这个类
functionsmarty_modifier_truncate($string,$length=80,$etc='...',$break_words=false,$middle=false){if($length==0)return'';if(is_callable('mb_strlen')){if(mb_detect_encoding($string,'UTF-8,ISO-8859-1')==='UTF-8'){//$stringhasutf-8encodingif(mb_strlen($string)>$length){$length-=min($length,mb_strlen($etc));if(!$break_words&&!$middle){$string=preg_replace('/\s+?(\S+)?$/u','',mb_substr($string,0,$length+1));}if(!$middle){returnmb_substr($string,0,$length).$etc;}else{returnmb_substr($string,0,$length/2).$etc.mb_substr($string,-$length/2);}}else{return$string;}}}//$stringhasnoutf-8encodingif(strlen($string)>$length){$length-=min($length,strlen($etc));if(!$break_words&&!$middle){$string=preg_replace('/\s+?(\S+)?$/','',substr($string,0,$length+1));}if(!$middle){returnsubstr($string,0,$length).$etc;}else{returnsubstr($string,0,$length/2).$etc.substr($string,-$length/2);}}else{return$string;}}版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。