php smarty中文截取插件开发示例
(1) 首先我们需要了解一下 smarty 及其插件的一些知识
1. 什么是smarty?
smarty是一个使用PHP写出来的模板PHP模板引擎, 是php.net推荐的一个模板系统.
2. 什么是smarty的插件?
smarty的插件是指smarty中的plugins, 是一些嵌入模板内的一些功能性控制语句, smarty中的Variable Modifiers(变量调节)实际就是一些内置的插件。
3. 插件是怎么工作的?
在smarty模板中使用了插件调用语句时动态的载入, 你可以将你写好的插件放入smarty目录中的lib目录下的plugins目录里面, 这样在模板中使用这些插件时它将会被自动载入。
4. 插件有几种类型?
smarty 插件的类型有:function, modifier, block, compiler,prefilter, postfilter, outputfilter, resource, insert,本篇文章我们只分享一下如何开发 function 类型的插件,其它类型的开发方法大同小异,大家可以模仿试试。
5. 如何命名插件?
文件名形式:
type.name.php
type指的是类型,上边提到的几种就是它的选择范围;
name: 自定义的插件名称,本文中使用showNews来命名;
函数名称:
smarty_type_name() smarty:固定位置的固定名称; type与文件名的type一致, name与文件名中的name一致
(2)基础知识明白了,下面就开始开发了。将以下代码拷贝到文件中,命名为 modifier.truncate_cn.php 文件,然后将该文件拷贝到 smarty/lib/plugins/ 目录下面(注意这个目录形式不是固定的,个人根据自己的情况来,但必定是放在plugins目录里面)。
/* *作者:http://www.phpernote.com/ *时间:2013年1月31日06:31:52 *作用:截取中文字符串 */ function smarty_modifier_truncate_cn($string,$length=0,$ellipsis='…',$start=0){ $string=strip_tags($string); $string=preg_replace('/\n/is','',$string); //$string=preg_replace('/ | /is','',$string);//清除字符串中的空格 $string=preg_replace('/ /is','',$string); preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/",$string,$string); if(is_array($string)&&!empty($string[0])){ $string=implode('',$string[0]); if(strlen($string)(3)下面就可以使用该插件了,以后在模板里面就可以直接使用 truncate_cn 函数来进行中文字符串的截取了,比如:{$news.content|truncate_cn:'30'}
至此,php smarty 模板的一个插件就这么完成了,是不是非常简单,希望你能学会并将自己的 smarty 打造成一个更为个性的模板引擎。
您可能感兴趣的文章
- smarty模板中使用php函数以及smarty模板中如何对一个变量使用多个函数
- smarty模板中for循环的扩展插件
- php如何清除html格式并去除文字中的空格然后截取文字
- PHP 获取文件扩展名(后缀名)的方法
- Smarty临时文件创建失败的解决办法
- 用PHP函数memory_get_usage获取当前PHP内存消耗量以实现程序的性能优化
- jquery弹出窗口插件(兼容所有浏览器)分享
- linux chmod(文件或文件夹权限设定)命令参数及用法详解
推荐阅读
-
php mb_substr()函数截取中文字符串应用示例
-
php smarty截取中文字符乱码问题?gb2312/utf-8
-
php mb_substr()函数截取中文字符串应用示例
-
php mb_substr()函数截取中文字符串应用示例
-
php mb_substr()函数截取中文字符串应用示例,_PHP教程
-
php mb_substr()函数截取中文字符串应用示例,
-
php smarty中文截取插件开发示例
-
php中文字符串截取函数示例
-
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例,
-
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例,