php smarty函数扩展_php模板

中文截取 modifier.cn_truncate.php

复制代码 代码如下:

function smarty_modifier_cn_truncate($string, $strlen = 20, $etc = '...',
$keep_first_style = false)
{
$strlen = $strlen*2;
$string = trim($string);
if ( strlen($string) <= $strlen ) {
return $string;
}
$str = strip_tags($string);
$j = 0;
for($i=0;$i<$strlen;$i++) {
if(ord(substr($str,$i,1))>0xa0) $j++;
}
if($j%2!=0) $strlen++;
$rstr=substr($str,0,$strlen);
if (strlen($str)>$strlen ) {$rstr .= $etc;}
if ( $keep_first_style == true && ereg('^<(.*)>$',$string) ) {
if ( strlen($str) <= $strlen ) {
return $string;
}
$start_pos = strpos($string,substr($str,0,4));
$end_pos = strpos($string,substr($str,-4));
$end_pos = $end_pos+4;
$rstr = substr($string,0,$start_pos) . $rstr . substr($string,$end_pos,strlen($string));
}
return $rstr;
}

modifier.ubb.php

复制代码 代码如下:

<?php
function smarty_modifier_ubb($str) {
$ubbs['quote'][0] = '/\[quote\](.*?)\[\/quote\]/s';
$ubbs['quote'][1] = '<blockquote>引用:<hr size=1>\1<hr size=1></blockquote>';
$ubbs['b'][0] = '/\[b\](.*?)\[\/b\]/s';
$ubbs['b'][1] = '<b>\1</b>';
$ubbs['i'][0] = '/\[i\](.*?)\[\/i\]/s';
$ubbs['i'][1] = '<i>\1</i>';
$ubbs['u'][0] = '/\[u\](.*?)\[\/u\]/s';
$ubbs['u'][1] = '<u>\1</u>';
$ubbs['li'][0] = '/\[li\](.*?)\[\/li\]/s';
$ubbs['li'][1] = '<li>\1</li>';
$ubbs['img'][0] = '/\[img\](.*?)\[\/img\]/s';
$ubbs['img'][1] = '<img border="0" src="\1">';
$ubbs['img2'][0] = '/\[img=([^,]+),([^\]]+)\](.*?)\[\/img\]/s';
$ubbs['img2'][1] = '<img border="0" width="\1" height="\2" src="\3">';
$ubbs['url'][0] = '/\[url\](.*?)\[\/url\]/s';
$ubbs['url'][1] = '<a href="\1" target="_blank">\1</a>';
$ubbs['url2'][0] = '/\[url=([^\]]+)\](.*?)\[\/url\]/s';
$ubbs['url2'][1] = '<a href="\1" target="_blank">\2</a>';
$ubbs['email'][0] = '/\[email=([^\]]+)\](.*?)\[\/email\]/s';
$ubbs['email'][1] = '<a href="mailto:\2">\2</a>';
$ubbs['qq'][0] = '/\[qq\]([0-9]{5,10})\[\/qq\]/s';
$ubbs['qq'][1] = '<a target="new" href="tencent://message/?uin=\1&Site=www.52515.net&Menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=1:\1:\1" alt="点击这里给我发消息"></a>';
$ubbs['color'][0] = '/\[color=([^\]]+)\](.*?)\[\/color\]/s';
$ubbs['color'][1] = '<font color="\1">\2';
$ubbs['font'][0] = '/\[font=([^\]]+)\](.*?)\[\/font\]/s';
$ubbs['font'][1] = '<font face="\1">\2';
$ubbs['size'][0] = '/\[size=([0-9]+)\](.*?)\[\/size\]/s';
$ubbs['size'][1] = '<font size="\1" style="line-height:\1em;">\2';
$ubbs['sizept'][0] = '/\[size=([0-9,pt]+)\](.*?)\[\/size\]/s';
$ubbs['sizept'][1] = '<font style="font-size:\1">\2';
$ubbs['align'][0] = '/\[align=([^\]]+)\](.*?)\[\/align\]/s';
$ubbs['align'][1] = '<div align="\1">\2';
$ubbs['media'][0] = '/\[media\](.*?)\[\/media\]/s';
$ubbs['media'][1] = '<embed src="\1"></embed>';
$ubbs['list'][0] = '/\[list\](.*?)\[\/list\]/s';
$ubbs['list'][1] = '<ul>\1</ul>';
$ubbs['list2'][0] = '/\[list=([0-9]+)\](.*?)\[\/list\]/s';
$ubbs['list2'][1] = '<ol>\2</ol>';
$ubbs['indent'][0] = '/\[indent\](.*?)\[\/indent\]/s';
$ubbs['indent'][1] = '<div style="text-indent: 20px;">\1';
$ubbs['table'][0] = '/\[table([=,0-9,%]*)\](.*?)\[\/table\]/s';
$ubbs['table'][1] = '<table style="border:#0099FF 1px dotted;border-right-width:0px; border-top-width:0px;">\2';
$ubbs['tr'][0] = '/\[tr\](.*?)\[\/tr\]/s';
$ubbs['tr'][1] = '<tr>\1';
$ubbs['td'][0] = '/\[td\](.*?)\[\/td\]/s';
$ubbs['td'][1] = '<td style="border:#0099FF 1px dotted; border-left-width:0px; border-bottom-width:0px;"> \1';
$ubbs['td2'][0] = '/\[td([^(\]|\[)]+)\](.*?)\[\/td\]/s';
$ubbs['td2'][1] = '<td style="border:#0099FF 1px dotted; border-left-width:0px; border-bottom-width:0px;"> \2';
$str = str_replace('[*]','<li>',$str);
foreach ($ubbs as $ubb){
$str = ubb_replace($ubb[0],$ubb[1],$str);
}
return $str;
}
function ubb_replace($pattern,$replacement,$str){
do {
$str_ret = $str;
$str = preg_replace($pattern,$replacement,$str);
}while($$str);
return $str_ret;
}
?>

编码 modifier.unescape.php

复制代码 代码如下:

function smarty_modifier_unescape($str)
{
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|[^%]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",@pack("H4",substr($v,-4)));
}
return join("",$ar);
}

时间: 2024-10-12 13:10:37

php smarty函数扩展_php模板的相关文章

SMARTY学习手记_php模板

学习PHP不能不提下SMARTY,作为著名的模板程序,SMARTY自然有其优势.下面是我总结的自己的一点学习心得吧! ===================================== 先在smarty.php.net下载最新smarty 将libs文件夹放在你的WEB目录下,我是放在smarty下的,目录情况如下:e:/smarty/libs 在smarty目录下新建如下文件夹: templates(这里放你的模板文件,即tpl文件) configs templates_c(自动将编译

Smarty Foreach 使用说明_php模板

foreach 是除 section 之外处理循环的另一种方案(根据不同需要选择不同的方案). foreach 用于处理简单数组(数组中的元素的类型一致),它的格式比 section 简单许多,缺点是只能处理简单数组. foreach 必须和 /foreach 成对使用,且必须指定 from 和 item 属性. 将 from 属性指定的数组中的数据遍历处理到 item 属性指定的变量中. 参考 foreach (array_expression as $key => $value) from

[PHP]模板引擎Smarty深入浅出介绍_php基础

Smarty介绍 什么是模版引擎 不知道从什么时候开始,有人开始对 HTML 内嵌入 Server Script 觉得不太满意.然而不论是微软的 ASP 或是开放源码的 PHP,都是属于内嵌 Server Script 的网页伺服端语言.因此也就有人想到,如果能把程序应用逻辑 (或称商业应用逻辑) 与网页呈现 (Layout) 逻辑分离的话,是不是会比较好呢? 其实这个问题早就存在已久,从交互式网页开始风行时,不论是 ASP 或是 PHP 的使用者都是身兼程序开发者与视觉设计师两种身份.可是通常

PHP模板引擎smarty详细介绍_php实例

<?php /*一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲, 目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要. 二.smarty优点: 1. 速度:采用smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的. 2. 编译型:采用smarty编写的程序在运行时要编译成一个

PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例_php实例

本文实例讲述了PHP模板引擎Smarty之配置文件在模板变量中的使用方法.分享给大家供大家参考,具体如下: 配置文件在模板中的作用是:给前端设计页面定义变量,主要控制的是模板的外观,与 PHP 程序无关. 使用步骤: 1.使用 $tpl->configs_dir="目录"  //指定配置文件存放的目录: 2.在模板中要使用 <{configs_load file="配置文件"}> 加载f配置文件,如果有区域的话,可以使用 section="

模板引擎smarty工作原理以及使用示例_php模板

模板引擎是用于把模板文件和数据内容合并在一起的程序,便于网站开发有利于代码分离和维护,了解一个模板最好知道其工作原理,以便于实现一通万通. 模板文件一般是HTML xml js等类型文件,如果不用模板引擎若要把数据显示在网页上,我们需要在php中输出HTML,而使用模板则只要把数据交给模板引擎程序即可,然后告诉它用哪个模板文件,自然就会把数据和页面结合以后返回或输出,模板至少有以下功能1.把数据提供给模板引擎的功能.2.指定模板的功能.3.输出结果的功能.一般来说为了方便程序员们使用模板引擎,开

在PHP世界中选择最合适的模板与使用方法第1/2页_php模板

在PHP世界中选择最合适的模板 /google 的广告条--> 事情的起因:你用过FastTemplate吗?对于PHP工程中的模板应用,其实我和我的同事们已经在许多的项目中接触过--关于它的好处,我想无论是在实际开发阶段还是上升到设计模式的角度都已经有很多"前辈先哲"讨论过了.就项目实施而言,在一些中型甚至大型的项目中,有效的将HTML(还有其他文本形式的表现层)和PHP代码分开,不仅在开发阶段可以分别提高界面设计人员和应用程序编写人员的工作效率,更会给项目的测试和维护带来巨大

Smarty实例教程-模板设计部分

一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目 中显的尤为重要. 二.smarty优点: 1. 速度:采用smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的. 2. 编译型:采用smarty编写的程序在运行时要编译成一个非模板技术的PH

smarty实例教程_php基础

smarty实例教程(1) 一.什么是smarty? smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分 离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目 中显的尤为重要. 二.smarty优点: 1. 速度:采用smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的. 2. 编译型:采用smarty编写的程序在运行