<?phpLike I said, the next step is to retrieve the individual information, but first let's make a beginning on our feed, by setting the appropriate header (text/xml) and printing the channel information, etc.
// Get page
$url "http://www.phpit.net/";
$data implode("", file($url));
// Get content items
pregmatchall ("/<div class"contentitem">([^`]?)</div>/", $data, $matches);
// Begin feedNow it's time to loop through the items, and print their RSS XML. We first loop through each item, and get all the information we get, by using more regular expressions and pregmatch(). After that the RSS for the item is printed.
header ("Content-Type: text/xml; charsetISO-8859-1");
echo "<?xml version"1.0" encoding"ISO-8859-1" ?>
";
?>
<rss version"2.0"
xmlns:dc"http://purl.org/dc/elements/1.1/"
xmlns:content"http://purl.org/rss/1.0/modules/content/"
xmlns:admin"http://webns.net/mvcb/"
xmlns:rdf"http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<channel>
<title>PHPit Latest Content</title>
<description>The latest content from PHPit (http://www.phpit.net), screen scraped!</description>
<link>http://www.phpit.net</link>
<language>en-us</language>
<?
<?phpAnd finally, the RSS file is closed off.
// Loop through each content item
foreach ($matches[0] as $match) {
// First, get title
pregmatch ("/">([^`]?)</a></h3>/", $match, $temp);
$title $temp['1'];
$title striptags($title);
$title trim($title);
// Second, get url
pregmatch ("/<a href"([^`]?)">/", $match, $temp);
$url $temp['1'];
$url trim($url);
// Third, get text
pregmatch ("/<p>([^`]?)<span class"byline">/", $match, $temp);
$text $temp['1'];
$text trim($text);
// Fourth, and finally, get author
pregmatch ("/<span class"byline">By ([^`]?)</span>/", $match, $temp);
$author $temp['1'];
$author trim($author);
// Echo RSS XML
echo "<item>
";
echo " <title>". striptags($title). "</title>
";
echo " <link>http://www.phpit.net". striptags($url). "</link>
";
echo " <description>". striptags($text). "</description>
";
echo " <content:encoded><![CDATA[
";
echo $text. "
";
echo " ]]></content:encoded>
";
echo " <dc:creator>". striptags($author). "</dc:creator>
";
echo " </item>
";
}
?>
</channel>That's all. If you put all the code together, like in the demo script, then you'll have a perfect RSS feed.
</rss>
About the Author
Dennis Pallett is a young tech writer, with much experience in ASP, PHP and other web technologies. He enjoys writing, and has written several articles and tutorials. To find more of his work, look at his websites at http://www.phpit.net, http://www.aspit.net and http://www.ezfaqs.com