php培训:PHP模板用xml的思路(a)

我们来看看这种方式的生成方式的缺点:如果要"多样式"的显示数据,当然我先不说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:/ /w

ww.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"><HTML

xmlns="http: /ww w.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>

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

时间: 2024-12-16 23:02:07

php培训:PHP模板用xml的思路(a)的相关文章

VO对象通过groovy模板映射XML文件

介绍 在之前写过JAVA+XSLT相关的技术博客,最近研究了一个开源工具包org.codehaus.groovy,对处理VO对象和XML文件映射还是非常方便的.简言之:将VO对象中的属性(包括Collection, Map),通过groovy模板文件,映射XML文件. Maven pom.xml <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</art

Eclipse导入模板格式Xml配置文件

Eclipse一般常用的可以导入两处 *.xml 格式的模板,一个是常用的注释格式模板,另一个是代码格式化时用的模板,导入方法如下: 假设: 1.xml 是代码注释格式模板     2.xml 是代码格式化时的自定义模板 导入方式:打开 Window--Preferences Java--Code Style 下面 点 Code Templates,在右侧 有个 Import 按钮,这个 导入的是 注释模板配置文件,即 1.xml 点 Formatter,在上部有个Import按钮,这个导入的是

【Win 10应用开发】Adaptive磁贴模板的XML文档结构

在若干天之前,老周给大家讲了Adaptive Toast通知的XML模板,所以相应地,今天老周给大家介绍一下Adaptive磁贴的新XML模板. 同样道理,你依旧可以使用8.1时候的磁贴模板,在win 10的API中也是支持的,此外,Win10 App还支持全新的自适应磁贴模板,本文老周就给大家先讲一下基本结构,下一篇文章中咱们再说一说复杂排版. 应用程序的图标可以分为两类:第一类是应用商店上专用的,就是你的应用提交到商店后,给用户看的图标:另一类就是应用本身的一些图标或磁贴. 磁贴其实也就这么

微信小程序模板消息群发解决思路

基于微信的通知渠道,微信为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.(微信6.5.2及以上版本支持模板功能.低于该版本将无法收到模板消息.) 模板推送位置:服务通知(点击查看详情还能跳转到下发消息的小程序的指定页面) 模板下发条件:用户本人在微信体系内与页面有交互行为后触发 微信小程序模板消息使用说明(官方文档):https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html 为了防止对模板消息的滥用,带来

spring xml 空模板-applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchem

商城运费模板数据库简单设计思路

1.数据库结构 2.后台表单设计 原文地址:https://blog.51cto.com/14210437/2383873

发送邮件使用html模板的实现的大致思路

客户最近有一个需求,大致的意思是提供一个 word文档,让其作为一个模板,在发送邮件的时候能够实现按照这个模板的样式和内容,替换其中 的一些字段,作为邮件的内容发给收件人.这个需求最大的问题就是在于这些需要替换的变量的存储方式,是在数据库中存储还是在xml中存储,或者是其他的存储方式,我最终选择了在数据库中存储,因为这些变量基本比较固定,并且后期维护起来比较容易.下面是大致的实现的步骤 1.在数据库中新建一个存储附件的表MailTemplate,包含主键,模板名称,描述.模板url等字段, 2.

spring applicationContext.xml详解及模板

applicationContext.xml 文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http

TestLink学习七:TestLink测试用例Excel转换XML工具

最近在整理测试用例,所以想找一个合适的工具来完成对测试需求.测试用例的管理.对比了一翻,发现开源工具中扩展比较好的还属TestLink,而且还可以与JIRA进行对接,这样就引起了我更大的兴趣.加上之前本来就接触过此工具,只是源于各种原因没能深入去研究来着,这次也就是决心于此!于是就找来了Testlink的最新版1.9.3,将其搭建在Ubuntu Server上,很快我们就可以正常方访问了.不过说实话,Testlink界面确实很难看,不过毕竟它不是商业工具,而且可以自己去扩展并定制开发,这就是最大