这可能会或可能不会帮助您,但这是我用来生成 Atom 提要的代码:
<?php
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', dirname(dirname(__file__)));
define('HOST', 'http://' . $_SERVER['HTTP_HOST'] . dirname( $_SERVER['PHP_SELF'] ) );
function publishAtom() {
/*
My data entities had these fields:
- title
- category
- permalink (a URL-safe version of the title)
- timestamp
- lastupdated
- abstract
You'll need to adjust the code below to match your entities.
*/
# get the data
$rows = //<<insert your data-gathering-code here>> -> needs to be an array of your entities;
$feed_title = "Atom Feed";
$feed_subtitle = "Get all our newest entries when you subscribe to the feed.";
$site_domain = "http://yourdomain.com";
$author_name = "Your Name";
$author_email = "yourname@yourdomain.com";
$feed = '<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>' . $feed_title . '</title>
<subtitle>' . $feed_subtitle . '</subtitle>
<link href="' . $site_domain . '/atom.xml" rel="self" />
<link href="' . $site_domain . '" />
<updated>' . date('c') . '</updated>
<author>
<name>' . $author_name . '</name>
<email>' . $author_email . '</email>
</author>
<id>tag:' . str_replace( "http://", '', $site_domain ) . ',2012:feed</id>';
# Get the entries
foreach( $rows as $row ) {
$feed .= '<entry>
<title>' . $row->title . '</title>
<link href="' . strtolower( $site_domain . DS . $row->category . DS . $row->permalink ) . '" />';
$date= date( 'Y-m-d', strtotime( $row->timestamp ) );
$uuid = str_replace( "http://", '', $site_domain ) . ',' . $date . ':' . $row->permalink;
$feed .= '<id>tag:' . $uuid . '</id>';
if( isset( $row->lastupdated ) ) {
$feed .= '<updated>' . date( 'c', strtotime( $row->lastupdated ) ) . '</updated>';
}
else {
$feed .= '<updated>' . date( 'c', strtotime( $row->timestamp ) ) . '</updated>';
}
$feed .= '<summary>Entry for ' . $date . '</summary>
<content type="xhtml" xml:lang="en">
<div xmlns="http://www.w3.org/1999/xhtml">' . $row->abstract . '</div>
</content>
</entry>';
}
$feed .= "</feed>";
$path = ROOT . DS . "atom.xml";
$filenum=fopen( $path, "w" );
fwrite( $filenum, $feed );
fclose( $filenum );
}
}
# call this function wherever is relevent for you
publishAtom();
?>
它应该让您了解如何手动执行此操作。HTH。