PHP生成RSS pubDate所需日期时间格式的方法
发布:smiling 来源: PHP粉丝网 添加日期:2015-12-10 14:31:41 浏览: 评论:0
简易信息聚合(也叫聚合内容)是一种RSS基于XML标准,在互联网上被广泛采用的内容包装和投递协议。RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,使用非常的多,下面我们来介绍在生成rss时pubDate所需日期时间格式的方法
SS / ATOM 的格式要产生都很简单, 麻烦的是日期格式的产生(RSS => pubDate, ATOM => created).
发现 PHP Date 有提供这些需要的相关全域变量可以使用:(PHP 5.1.1 以后开始支援这些全域变量)
- echo DATE_RSS; // D, d M Y H:i:s O
- echo DATE_ATOM; // Y-m-d\TH:i:sP
- echo date(DATE_RSS); // Wed, 23 Apr 2008 19:27:19 +0800
- echo date(DATE_ATOM); // 2008-04-23T19:27:38+08:00
如果是 MySQL timestamp/datetime format 直接拉出来的资料, 就可以直接使用:
date(DATE_RSS, ($MYSQL_DATETIME_DATA));
目前支持的日期全域变量有以下:
- DATE_ATOM: Atom Atom (example: 2005-08-15T15:52:01+00:00)
- DATE_COOKIE: HTTP Cookies (example: Monday, 15-Aug-05 15:52:01 UTC)
- DATE_ISO8601: ISO-8601 (example: 2005-08-15T15:52:01+0000)
- DATE_RFC822: RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000)
- DATE_RFC850: RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC)
- DATE_RFC1036: RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000)
- DATE_RFC1123: RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000) //phpfensi.com
- DATE_RFC2822: RFC 2822 (Mon, 15 Aug 2005 15:52:01 +0000)
- DATE_RFC3339: Same as DATE_ATOM
- DATE_RSS: RSS (Mon, 15 Aug 2005 15:52:01 +0000)
- DATE_W3C: World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)
PHP 预定义的日期格式
自 PHP 5.1.1 起定义有以下常量来提供标准日期表达方法,可以用于日期格式函数.
- echo DATE_RSS; // D, d M Y H:i:s O
- echo DATE_ATOM; // Y-m-d\TH:i:sP
- echo date(DATE_RSS); // Wed, 23 Apr 2008 19:27:19 +0800
- echo date(DATE_ATOM); // 2008-04-23T19:27:38+08:00
虽然格式简单,但用PHP内的预定义格式岂不更加方便.
目前PHP所有支持的日期格式:
- DATE_ATOM: Atom Atom (example: 2005-08-15T15:52:01+00:00)
- DATE_COOKIE: HTTP Cookies (example: Monday, 15-Aug-05 15:52:01 UTC)
- DATE_ISO8601: ISO-8601 (example: 2005-08-15T15:52:01+0000)
- DATE_RFC822: RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000)
- DATE_RFC850: RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC)
- DATE_RFC1036: RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000)
- DATE_RFC1123: RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000)
- DATE_RFC2822: RFC 2822 (Mon, 15 Aug 2005 15:52:01 +0000)
- DATE_RFC3339: Same as DATE_ATOM
- DATE_RSS: RSS (Mon, 15 Aug 2005 15:52:01 +0000)
- DATE_W3C: World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)
生成rss例子.
- header("Content-type: application/xml"); //定义header头,以防止chrome内核的浏览器不支持rss订阅,如果不支持就输出xml格式的文件
- /**
- * 查询数据库,获取要输出rss的数据
- */
- $database = "nameofthedatabase";
- $dbconnect = mysql_pconnect(localhost, dbuser, dbpassword);
- mysql_select_db($database, $dbconnect);
- $query = "select link, headline, description from `headlines` limit 15";
- $result = mysql_query($query, $dbconnect);
- while ($line = mysql_fetch_assoc($result)) {
- $return[] = $line;
- }
- $now = date("D, d M Y H:i:s T");
- $output = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
- <rss version=\"2.0\">
- <channel>
- <title>山东道路交通安全网-$lanmu</title>
- <link>http://sdjtaq.cn/rss</link>
- <description>Latest 100 articles of $lanmu</description>
- <pubDate>$now</pubDate>
- <lastBuildDate>$now</lastBuildDate>
- <docs>http://someurl.com</docs>
- <managingEditor>810706080@qq.com</managingEditor>
- <webMaster>810706080@qq.com</webMaster>
- ";
- foreach ($artList as $line) {
- $date = strtotime($line['add_time']); //将数据库的时间格式化成时间戳
- $output .= "<item> \n" //phpfensi.com
- . "<title>" . $line['title'] . "</title>\n"
- . " <link>http://sdjtaq.cn/aq_show_" . $line['id'] . ".html</link>\n"
- . "<description><![CDATA[" . $line['zhaiyao'] . "]]></description>\n"
- . "<pubDate>" . date("D, d M Y H:i:s O", $date) . "</pubDate>\n"
- . "</item>\n";
- }
- $output .= "</channel>\n</rss>";
- echo $output;
Tags: PHP生成日期 pubDate
- 上一篇:php删除空格空行的例子
- 下一篇:php提取字符串里所有URL的例子
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)