首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

11.2  生成XML

Generating XML  

PHP可以生成(创建)动态HTML,也可以生成动态XML。你可以为其他程序生成基于表单、数据库查询的XML,也可以为PHP中可以做的任何事生成XML。动态XML的一个典型应用是RSS(丰富站点摘要,Rich Site Summary,另一种解释为真正简易聚合,Really Simple Syndication),一种用来同步新闻站点的文件格式。你可以读取数据库或者HTML文件中的文章信息,生成一个基于这些信息的XML摘要文件。

用PHP生成XML文档很简单。只需要用header()函数把文档的MIME类型改成"text/ xml"。为了避免<?xml ... ?>声明被解释为一个PHP标签,你也需要编辑php.ini,将short_open_tag选项设为不启用,或者直接用echo把这一行打印出来:

<?php

 echo '<?xml version="1.0" encoding="ISO-8859-1" ?>';

?>

示例11-1用PHP生成一个RSS文档。RSS文件是一个包含有若干个channel元素的XML文档,每个channel包含有几个item元素,每个item元素又包含有一个title、一个description和一个link元素。实际上RSS所支持的属性比示例11-1中所展示的要多。就像PHP生成HTML没用到什么特殊函数一样,用PHP生成XML也只需要用echo打印内容即可。

示例11-1:生成一个XML文档

<?php header('Content-Type: text/xml'); ?>

<?xml version='1.0' encoding='ISO-8859-1' ?>

<!DOCTYPE rss PUBLIC '-//Netscape Communications//DTD RSS 0.91//EN'

 'http://my.netscape.com/publish/formats/rss-0.91.dtd'>

<rss version="0.91">

  <channel>

    <?php

     // news items to produce RSS for

     $items = array(

                    array('title' => 'Man Bites Dog',

                          'link'  => 'http://www.example.com/dog.php',

                          'desc'  => 'Ironic turnaround!'),

                    array('title' => 'Medical Breakthrough!',

                          'link'  => 'http://www.example.com/doc.php',

                          'desc'  => 'Doctors announced a cure for me.')

                    );

     foreach($items as $item) {

       echo "<item>\n";

       echo "  <title>{$item[title]}</title>\n";

       echo "  <link>{$item[link]}</link>\n";

       echo "  <description>{$item[desc]}</description>\n";

       echo "  <language>en-us</language>\n";

       echo "</item>\n";

     }

    ?>

  </channel>

</rss>

<?xml version='1.0' encoding='ISO-8859-1' ?>

<!DOCTYPE rss PUBLIC '-//Netscape Communications//DTD RSS 0.91//EN'

 'http://my.netscape.com/publish/formats/rss-0.91.dtd'>

<rss version="0.91">

  <channel>

    <item>

  <title>Man Bites Dog</title>

  <link>http://www.example.com/dog.php</link>

  <description>Ironic turnaround!</description>

  <language>en-us</language>

</item>

<item>

  <title>Medical Breakthrough!</title>

  <link>http://www.example.com/doc.php</link>

  <description>Doctors announced a cure for me.</description>

  <language>en-us</language>

</item>

  </channel>

</rss>

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论