Sometimes you need to read rss from different websites. Below is a php program to read rss cyclically. it mainly outputs an array string and solves the encoding problem. sometimes you need to read rss from different websites, below is a php program to read rss cyclically, mainly to output an array string and solve the encoding problem.
Php source code and code are described as follows:
// RSS source address list array $ Rssfeed = array ( "Http://www.phpzixue.cn/rss1.xml ", "Http://www.phpzixue.cn/rss2.xml ", Http://tech.163.com/special/00091JPQ/techimportant.xml "); // Set encoding to UTF-8 header ('content-Type: text/html; charset = UTF-8 '); For ($ I = 0; $ I $ Buff = ""; $ Rss_str = ""; // Open the rss address and read it. if reading fails, stop $ Fp = fopen ($ rssfeed [$ I], "r") or die ("can not open $ rssfeed "); While (! Feof ($ fp )){ $ Buff. = fgets ($ fp, 4096 ); } // Close the file Fclose ($ fp ); // Create an XML parser $ Parser = xml_parser_create (); // Xml_parser_set_option -- set options for specified XML parsing Xml_parser_set_option ($ parser, XML_OPTION_SKIP_WHITE, 1 ); // Xml_parse_pai_struct -- parse XML data to the array $ values Xml_parse_into_struct ($ parser, $ buff, $ values, $ idx ); // Xml_parser_free -- release the specified XML parser Xml_parser_free ($ parser ); Foreach ($ values as $ val ){ $ Tag = $ val ["tag"]; $ Type = $ val ["type"]; $ Value = $ val ["value"]; // Convert tags to lowercase $ Tag = strtolower ($ tag ); If ($ tag = "item" & $ type = "open "){ $ Is_item = 1; } Else if ($ tag = "item" & $ type = "close "){ // Construct the output string $ Rss_str. = "". $ title ." "; $ Is_item = 0; } // Read only the content in the item label ($ Is_item = 1 ){ If ($ tag = "title") {$ title = $ value ;} If ($ tag = "link") {$ link = $ value ;} } } // Output result Echo $ rss_str ." "; }
|