文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程PHP模板用xml的思路
精品推荐
特别推荐
·菜鸟学PHP之Smarty入门
·PHP环境安全配置教程
·PHP入门指导:如何学习PHP?
·Php+Mysql注入专题
·PHP:实现给上传图片加水印的程序代码
·PHP动态网站开发中常用的8个小技巧
·PHP初学者:配置Apache服务器并且设置DNS
·初学PHP指导:php.ini 配置详细选项
·好文分享:PHP入门的学习方法
·急速搭建属于自己的Discuz!6论坛
·PHP入门:初学来看配置文件PHP.INI的中文注释
·php.ini配置,php.ini 中的 php-5.2.0 配置指令详解
·总结:一些PHP学习过程中的心得和经验
·新手入门:JSP初学者必须掌握的语法点
·PHP技巧:PHP脚本编程中的文件系统函数库
·详细讲解PHP编程中分页显示的制作
·成为PHP编程高手应该遵循的三个准则
·谈谈生成静态页面的一些经验
·新手入门:详细解述七个软件开发的原则
·简单的webservice开发例子
热点TOP10
·一个Struts实现分页,增删改查,Tiles,国际化的DEMO
·MyEclipse+struts+Hibernate配置开发
·Windows XP下PHP+MySQL环境搭建
·PHP预定义变量
·简单的webservice开发例子
·80004005 及其它错误消息的疑难解答
·模板用xml的思路
·用PHP实现多级树型菜单
·如何利用PHP和CSS改变网页文字大小
·PHP+MYSQL留言本
·PHP+Access设计留言版实战
·初学者学习PHP开发应该掌握的几段精华代码
·JDBC连接Oracle数据库常见问题及解决方法
·PHP入门指导:如何学习PHP?
·实用:动态网页制作技术PHP的十个应用技巧
·菜鸟学PHP之Smarty入门
·PHP 会话 (Session) 使用入门
·Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
·优化NFR之一 --MSSQL Hello Buffer Overflow
·Win2000下PHP服务器安装攻略

模板用xml的思路

日期:2008年3月20日 作者: 查看:[大字体 中字体 小字体]


前段时间,一直比较关心PHP的模板技术的我,接到了客户的要求:全站利用模板技术,可以控制多模板,这个项目要求有强大的后台,主要是多模板,难点就在模板的导入和识别并且生成上,我仔细考察了php的模板核心技术,无外乎查找字符串开始,然后定义替换变量,替换成数据,然后并成输出页输出,牵扯到的缓存我就不再说了.

我们来看看这种方式的生成方式的缺点:如果要"多样式"的显示数据,当然我先不说Css,不能真正的把数据和表示分离,无外乎利用css样式表方式显示而已,我们现在接到的这个项目不但要求css样式表的可选化,而且要求数据显示的"多方式",打个比方,看下图:

我们下面为了容易描述期间,我这样表示各个部分:A,B,C,D,E,F,G这6个区可以表示数据显示区域,从设计者角度考虑,有全局(div控制A-G),TOP(A),LEFT(B),RIGHT(C,D,E,F)和FOOTER(G),当然,您可以分的更细一些,这么显示,可以用div控制的,但这不是模板技术,请明白,多样式表不叫模板,这和模板无关,所谓的模板,就是只与"数据布局"相关,在A数据我们另外可以表示成一个导航,如果您喜欢的话.这在传统的模板技术中会这样写:

...
<div id="top">
{$SITE_TOP$}//cjjer制作
</div>
...

替换的时候replace()的是{$ 和$}符号中的变量,这在数据简单的时候,比方只是一个导航,而我们如果要的是一个很复杂的数据显示的时候,那就很难控制了,因为把一个很大量输出数据放在一个变量中很难保证不出错.

另外,传统的模板(在php中)是这样的,获取模板的文件,加载,显示,这没什么问题,问题就在当web项目(不完全是网站)非常复杂的时候,很容易替换错误和模板单调,虽然可以用css控制一些显示,但很难控制数据的布局,比方,E区我今天不想要了,你改模板,重新加载文件... ?

有没有更加容易的解决方案?有.

我提出了这样一种观点:

模板页为 XML文档 ,模板节点加载已有模块 ,加载"仿xml数据"生成文件 (原谅我,这么说我觉得已经非常容易了)下面我就这种模板技术详谈.

先看看我说的模块是什么东西,大家都知道,Html中的<div>呀,<table>都是显示数据布局的一些布局标签,为什么我们不能自己制作这种标签呢?例如:我现在"创"一个这样的标签<format>这里,当然,这个标签对项目是有意义的,表示控制全局的模块节点,如果在模板页中出现节点<format>加载的就是对应名称为 format 的模块数据:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>[%TITLE%]</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="author" content="[%AUTHOR%]" />
<meta name="copyright" content="[%COPYRIGHT%]" />
<meta name="description" content="[%DESCRIPTION%]" />
<meta name="keyWords" content="[%KEYWORDS%]" />
<link href="styles/[%STYLES%]/import.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="format">
&%format%&
</div>
</body>
</html>

这里我把这个模板节点定义成 加载控制全局的html源了,再看这个标签topdata:

<div id="topdata">{%TOP_MESS%}<%=show_top_meun()%></div>

如果这个节点被加载,生成的文件里面会将topdata节点替换成如上的html文档模板,这就是模块

这里的模块也可以是xml文档,重复加载模块,也可以是终数据.

当这些还有模块节点的xml模板被加载以后,就被程序识别,对应的加载成html二级模块,然后提出我们的"仿xml 数据"标记中的数据,正则替换对应的节点,生成文件,这里的"仿xml数据"是这种方式的数据:

{%TITLE%}<%=cjjer_hometitle%>{%/TITLE%}

[1] [2] [3] [4] [5] 下一页 




上一篇:PHP安全《PHP Security》

下一篇:用php读取xml数据

模板用xml的思路 相关文章:
·模板用xml的思路
·Windows XP操作系统常见故障诊断思路
·将免费进行到底 Windiws Vista出现激活新思路
·换种思路 让Firefox用上迅雷下载
·技巧:QQ升级的亮主思路[边家篇]
·常见电子书格式及其反编译思路
·Photoshop调色技巧:照片调色的一种常用思路
·利用ASP+JMAIL进行邮件群发的新思路
·无进程DLL木马开发思路与实现
·资深网管浅谈ARP欺骗类病毒的防治思路
模板用xml的思路 相关软件:
·美工logo设计思路
·同等学力作文185题思路
·新思路单项技能教材 口语 (PETS)四级
·工程硕士数学思路经典讲解
·2004年全国硕士研究生入学考试英语历年真题解析及复习思路
·建设工程监理案例分析答卷思路和技巧点津
·新思路单项技能教材 口语 (PETS)三级
·2007维也纳新年音乐会 AAC20.1080i 思路出品
·美工logo设计思路
·勇敢者游戏2 HDre.xvid.dd51 思路出品

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn