Home | Scripts | Tutorials | Books | Hosting | Forums | Links|

Navigation:

Home
Source code
Tutorials
RSS feeds
Articles
Wordpress plugins
Blog
Books
Software
Downloads
Hosting
manuals
Script directory
Training
Our Links






 
 

SPONSORS



 
 

Getting the news from linux weekly

Here is the script to do just that

<?php
if( ! ($fp = fopen("http://lwn.net/headlines/rss" , "r" )) )
die("Couldn't open xml file!");
$item_counter = 0;
$in_item_tag = 0;
$linweek_current_tag_state = '';
$linweek_headline_data = array();
function startElementHandler( $parser, $element_name, $element_attribs )
{
global $item_counter;
global $in_item_tag;
global $linweek_current_tag_state;
global $linweek_headline_data;
if( $element_name == "ITEM" )
{
$in_item_tag = 1;
}
if( $in_item_tag == 1 )
{
$linweek_current_tag_state = $element_name;
}
else
{
$linweek_current_tag_state = '';
}
}
function endElementHandler( $parser, $element_name )
{
global $item_counter;
global $in_item_tag;
global $linweek_current_tag_state;
global $linweek_headline_data;
$linweek_current_tag_state = '';
if( $element_name == "ITEM" )
{
$item_counter++;
$in_item_tag = 0;
}
}
function characterDataHandler( $parser , $data )
{
global $item_counter;
global $in_item_tag;
global $linweek_current_tag_state;
global $linweek_headline_data;
if( $linweek_current_tag_state == '' || $in_item_tag == 0 )
return;
if( $linweek_current_tag_state == "TITLE" ) {
$linweek_headline_data[$item_counter]["title"] = $data;
}
if( $linweek_current_tag_state == "LINK" ) {
$linweek_headline_data[$item_counter]["link"] = $data;
}

}
if( !($xml_parser = xml_parser_create()) )
die("Couldn't create XML parser!");

xml_set_element_handler($xml_parser, "startElementHandler", "endElementHandler");
xml_set_character_data_handler( $xml_parser , "characterDataHandler" );
while( $data = fread($fp, 4096) )
{
if( !xml_parse($xml_parser, $data, feof($fp)) )
{
break; // get out of while loop if we're done with the file
}
}
xml_parser_free($xml_parser);
?>
<HTML>
<HEAD>
<TITLE>linux weekly news</TITLE>
</HEAD>

<BODY BGCOLOR="#ffffff">

<H3>Linux weekly news</H3>
<BR>
<?php

for( $i=0 ; $i < $item_counter ; ++$i )
{
printf("<A HREF=\"%s\">%s</a><br>\n" , $linweek_headline_data[$i]["link"] ,
$linweek_headline_data[$i]["title"] );
}

?>

</BODY>
</HTML>


and here is an example , linux weekly news