Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $numShown = 0;
- $maxToShow = 5;
- $insideitem = false;
- $tag = "";
- $title = "";
- $description = "";
- $link = "";
- $locations = array ('http://topics.nytimes.com/topics/reference/timestopics/subjects/e/espionage/index.html?rss=1' );
- srand ( ( float ) microtime () * 10000000 ); // seed the random gen
- $random_key = array_rand ( $locations );
- function startElement($parser, $name, $attrs) {
- global $insideitem, $tag, $title, $description, $link;
- if ($insideitem) {
- $tag = $name;
- } elseif ($name == "ITEM") {
- $insideitem = true;
- }
- }
- function endElement($parser, $name) {
- global $insideitem, $tag, $title, $description, $link, $numShown, $maxToShow;
- if ($name == "ITEM") {
- if ($numShown >= $maxToShow) {
- return;
- }
- $numShown ++;
- printf ( "<dt><b><a href='%s' target=new>%s</a></b></dt>", trim ( $link ), htmlspecialchars ( trim ( $title ) ) );
- printf ( "<dt>%s</dt><br><br>", trim ( $description ) );
- printf ( "<div style='clear: both'></div>" );
- $title = "";
- $description = "";
- $link = "";
- $insideitem = false;
- }
- }
- function characterData($parser, $data) {
- global $insideitem, $tag, $title, $description, $link;
- if ($insideitem) {
- switch ($tag) {
- case "TITLE" :
- $title .= $data;
- break;
- case "DESCRIPTION" :
- $description .= $data;
- break;
- case "LINK" :
- $link .= $data;
- break;
- }
- }
- }
- $xml_parser = xml_parser_create ();
- xml_set_element_handler ( $xml_parser, "startElement", "endElement" );
- xml_set_character_data_handler ( $xml_parser, "characterData" );
- $fp = fopen ( $locations [$random_key], 'r' ) or die ( "Error reading RSS data." );
- while ( $data = fread ( $fp, 4096 ) )
- xml_parse ( $xml_parser, $data, feof ( $fp ) ) or die ( sprintf ( "XML error: %s at line %d", xml_error_string ( xml_get_error_code ( $xml_parser ) ), xml_get_current_line_number ( $xml_parser ) ) );
- fclose ( $fp );
- xml_parser_free ( $xml_parser );
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement