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-dTH: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) 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-dTH: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 = ""; echo $output; n 山东道路交通安全网-$lanmu http://sdjtaq.cn/rssLatest 100 articles of $lanmu $now $now http://someurl.com [email protected] [email protected] "; foreach ($artList as $line) { $date = strtotime($line['add_time']); //将数据库的时间格式化成时间戳 $output .= "- n" . "
n"; } $output .= "" . $line['title'] . " n" . " http://sdjtaq.cn/aq_show_" . $line['id'] . ".htmln" . "n" . " " . date("D, d M Y H:i:s O", $date) . " n" . "