使用 PHP 处理 XML 配置文件
使用 PHP 处理 XML 配置文件
使用 XML 配置文件轻易地配置 PHP 应用程序和对象
级别: 中级
Vikram Vaswani, 创始人, Melonfire
2007 年 11 月 29 日
XML 为应用程序配置文件提供了一种便捷、易用的表达语言。但有时候将这些信息提取到 PHP 脚本中将会面对一个不小的挑战。这正是 XJConf for PHP 包出现的原因:它提供了一种读取 XML 编码信息并直接将其用于配置标量、数组和 PHP 对象这类 PHP 数据结构的 API。本文介绍了这个包,并通过在一些实际应用程序中的应用来示范其用法,包括配置复杂的类树和构建基于 Web 的配置界面。
简介
作为一条通用规则,开发任何稍微复杂的软件时,最好花点时间确定产品的重要配置变量,并将其从标准变量名称空间中取出来放到单独的位置。这样处理后就能形成集中的应用程序配置信息存储库,从而简化在不同环境中工作时对产品的修改。还有助于开发人员熟悉和理解产品成功运行所需要的重要信息。
传统上,配置变量存储在一个(或多个)配置文件中。这些变量常常用 XML 表示,XML 提供了一个灵活的框架允许文档作者使用自定义的标签和标记描述内容。多数情况下,开发人员还需要建立与这些 XML 配置文件交互的用户接口,读取和使用包含的配置数据。
XJConf for PHP 可帮助 PHP 开发人员完成这项任务。这个开源的包提供了一种 API,从配置文件中提取 XML 编码的信息,转化成原生数据结构直接在应用程序中使用。同样地,它也为所有的 PHP 应用程序提供了一种健壮的、易用的部件。
回页首
安装需要的软件
XJConf 包由 Frank Kleine 和 Stephan Schmidt 维护,按照 GNU LGPL 协议在 PHP 社区发布。它需要 PHP 5.0(或更高版本),最简单的安装方法是使用 PEAR 自动安装程序,后者默认情况下包含在 PHP 中。安装只需在 shell 提示符下输入下列命令即可:
shell> pear channel-discover pear.php-tools.net
shell> pear install pat/XJConfForPHP-alpha
PEAR 安装程序将连接到新的通道,下载这个程序包并安装到系统中适当的位置。本文使用的是 XJConf for PHP V. 0.2.0。
手动安装需要访问主页,下载源代码压缩包,手动解压到目标位置。可以在本文的 参考资料 部分找到该程序包的主页以及正在开发版本的链接。需要注意的是手工安装之前必须对 PEAR 程序包的组织结构有所了解。
最后一点要求:XJConf for PHP 需要启用 PHP 的 xmlreader 扩展。PHP 5.1.0 或以上版本默认
相关文档:
在windows下安装image magic 的php扩展 imagick, 首先需要下载php_imagick.dll文件.这个dll文件非常关键.
如果下载了错误的php_imagick.dll.安装就会失败.我就是下载了N个这样的dll文件都未能安装成功.最后终于给我找到正确的dll文件了
下载地址:http://valokuva.org/outside-blog-content/imagick-windows-builds ......
public string ConvertDataTableToXML(DataTable xmlDS)
{
MemoryStream stream = null;
XmlTextWriter writer = null;
try
{
stream = new MemoryStream();
writer = new XmlTextWriter(stream, Encoding.Default);
......
比较:
1. DTD
a. 最早的XML Contraint
b. 由W3C定义
C. 非常简单
2. XML Schema
a. 目前应用最广的XML Contraint
b. 由W3C定义
c. 很灵活,但非常复杂
3. Relax NG
a. 是个野孩子,不是由W3C定义
b. 非常非常简单直观
c. 对于需要频繁定义Contraint的Engineer非常合适
相互转化:
1. XML Document -> DTD ......
在php中计算时间差有时候是件麻烦的事!不过只要你掌握了日期时间函数的用法那这些也就变的简单了:
一个简单的例子就是计算借书的天数,这需要php根据每天的日期进行计算,下面就来谈谈实现这种日期计算的几种方法:
(1) 如果有数据库就很容易了!若是MSSQL可以使用触发器!用专门计算日期差的函数datediff()便可 ......
用 PHP 读取和编写 XML DOM
使用 DOM 库、SAX 解析器和正则表达式
文档选项
打印本页
将此页作为电子邮件发送
级别: 中级
Jack Herrington (jack_d_herrington@codegeneration.net), 高级软件工程师, "Code Generation Network"
2006 年 2 月 06 日
有许多技术可用于用 PHP 读取和编写 XML。本文提供了三种 ......