当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: Title : 一个方便易用的小模板处理类Author : Stangly Wrong 注:本模板类,经测试尚有BUG,估计还很多。
 

 

    摘要:程序中常常需要在一个主键范围内进行子查询,而这个范围是在前台中动态生成的,所以传过来的只能是一个字符串格式的确定这个主键范围的sql语句.以前的做法是在sp中再根据这个sql语句拼出来返回最终结果的更大的语句.发现这样子的语句往往效率很低,而且数据库的改动(例如列名)也往往无法在包编译时被检查出来. 解决的思路是先把这个主键范围的值查询出来,再用这个查询的结果和其他的表作链接,这样最终的sql就......
 ·取得系统中网卡mac地址方法一    »显示摘要«
    摘要:第一种方法使用microsoft的netbios api。 这是一套通过winsock提供底层网络支持的命令。使用netbios的最大缺点是您必须在系统中安装了netbios服务(如果您在windows网络中启用了文件共享的话,这就不是问题了)。除此此外,这种方法又快又准确。 netbios api只包括了一个函数,就叫做netbios。这个函数使用网络控制块(network control ......


一个方便易用的小模板处理类

title : 一个方便易用的小模板处理类

author : stangly wrong

注:本模板类,经测试尚有bug,估计还很多.如果你发现的话,请贴此,或来信告之,不胜感激. 【程序编程相关:建立自己的3D静态模型文件

【推荐阅读:给年轻工程师的十大忠告

【扩展信息:BSP树(1)

在php中使用模板技术,一直是一个受欢迎的技术.自从2001年开始,php的很多爱好者,在php中引用了mvc开发模式后,模板技术就更为火热.

网上很多出名的模板引擎,如phplib的template.fasttemplate.easytpl.btemplate以及现在受php.net推宠的smarty模板引擎.

我个人非常喜欢钟爱那些短小精悍的php代码,像smarty这些动折2000多行的代码实现的模板引擎,一般不是我的钟爱.

前一段时间,看了phpe.net上有一篇文章叫<<超越模板引擎>>感觉那个老外所说确实极其有道理.他这样说:smarty的目标是"把业务逻辑从表现中分离出来"而不是"php代码与html代码的分离".但是smarty确实也太庞大了,如果我在使用smarty的话,我会感觉smarty会不会影响php代码执行效率,首先在解析2000多行的smarty代码就可能会带来很大延迟.

受<<超越模板引擎>>一文作者影响,我感觉到php本身就是一个嵌入式的脚本语言,如果我们能够使用用简单的php代码写成的模板,而在运行时直接将他include进来那不是更为快捷?比如像如下这个样子的代码:

my name is {myname}.

为什么我们不直接写成

my name is <?=$myname?>.

这样样子呢?

还有模板里常用的列表,其实也是简单的loop

<!-- begin user_list -->

user id      : {var0}

user name : {var1}

<!-- end user_list -->

为什么我们不直接写成如下的代码

php: foreach ( $user_list as $user ) { ?>

user id : [´id´]?>

user name : [´name´]?>

} ?>

其实早在一年前,我就尝试用这种方法去做一些企业与政府的webos,只是当时,还没有意识这样做带来的好处.只是感觉这样的模板我不需要单独的代码去处理他,只是简单的include一下就ok了.而且,我记得当时在做这些用php语言直接写出的模板的时候,非常快捷,以至于到后来,参与开发几个美工都因此对php的程序开发,发生了很大的兴趣,开始学习php的脚本语言.

最近又受<<超越模板引擎>>一文影响,所以决定根据他的思想去实现一个模板处理的类,经过了二三天的每天像榨水果汁一样挤出的几个小时去完成了一个模板类.现在张贴在此,以便能有志同道合朋友能够与我一起讨论.

考虑了现在带会经常使用{name}的这样的标记去做模板,所以我写一个简单的parsehtm()的方法,去解析这样的文件,将其转换为<?=$name?>这样的php模板.然后将转换后的文件存贮到相应的cache目录中去,然后提供一个parsephp()方法去简单的include文件然后在主程序中echo输出.在实现的时候,我为了简化调用方法.使用了一个parse()方法去呼叫上述两个私有方法.

以下是代码示例:

首先给出目录结构:

 \  根目录

├─cache           存放php模板缓存的文件


...   下一页
 ·取得系统中网卡mac地址方法三    »显示摘要«
    摘要:第三种方法- 使用snmp扩展api 我要讨论的第三种方法是使用windows的snmp(简单网络管理协议)扩展来取得mac地址。在我的经验里,这个协议很简单。代码也是直勾勾的向前的。基本步骤和netbios相同: 1》取得网卡列表 2》查询每块卡的类型和mac地址 3》保存当前网卡 我个人对snmp了解不多,但如我刚刚所言,代码十分清楚。 snmp.cpp #include <snmp......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE