i teraz problem ...
<?php /* +--------------------------------------------------+ | Author: Allan Irvine <ai@ayrsoft.com> | +--------------------------------------------------+ | Date: WED 03 MARCH 2004 | +--------------------------------------------------+ | Origin: Scotland, United kingdom | +--------------------------------------------------+ | Script: newsReader.php | +--------------------------------------------------+ | No License | | free to use for personal and commercial purposes | +--------------------------------------------------+ */ //+++++++++++++++++++++++++++++++++++++++++++++++++++ // CHANGES //--------------------------------------------------- // Added a property $ampReplace, this is a quick fix // it is used to replace ampersands bfore php get a hold of // the rss file, and replace it once php has dealt with it // I was getting lines split by an ampersand, pointed out by // Mathew Clark of Divergent Systems, cheers. // I will need to address this later on as I deem this fix // as a bit of a kludge, not nice. // Allan Irvine <airvine@ayrsoft.com> // 29th April 2004 //---------------------------------------------------- // //++++++++++++++++++++++++++++++++++++++++++++++++++++ class newsReader{ var $currentTag; var $rss; var $level; var $startCollecting; var $wantedElements; var $cacheData; var $ampReplace; function newsReader(){ $this->rss = xml_parser_create(); xml_set_object($this->rss, $this); xml_parser_set_option($this->rss,XML_OPTION_CASE_FOLDING,1); xml_set_element_handler($this->rss,_startElement,_endElement); xml_set_character_data_handler($this->rss,_parseData); } function _findLevel($n){ $this->level = $regs[0]; } } function _startToCollect($n){ } function _startElement($t,$name,$attribs){ $this->currentTag = $name; $this->_findLevel($name); $this->_startToCollect($name); if($this->startCollecting){ $this->openTag[]="<tr><td>n"; } } function _endElement($t,$name){ if($this->startCollecting) $this->closeTag[]="</td></tr>n"; } function _parseData($t,$cData){ $this->content[]="<A HREF="".$cData."" TARGET="_BLANK">".$cData."</A>n"; $this->content[]="<IMG SRC="".$cData."">n"; }else{ $this->content[]=$cData; } } } function readNewsFeed($source){ $this->_readCacheData(); if($this->_useCache($source)){ $this->_writeCacheEntry($source); }else{ } if(!xml_parse($this->rss,$file,1)){ $ln = xml_get_current_line_number($this->rss); $msg = xml_error_string(xml_get_error_code($this->rss)); return ("An XML error occurred on line $ln: $msg"); }else{ $rtn = "<TABLE border=0>n"; for($i=0;$i<count($this->openTag);$i++){ $rtn.= $this->openTag[$i].$this->content[$i].$this->closeTag[$i]; } $rtn.="</TABLE>n"; if(!$this->_useCache($source)){ $this->_writeCacheEntry($source); } return $rtn; } } function _checkCacheDir(){ } } function _readCacheData(){ } } function _useCache($source){ return 0; }else{ return 1; } }else{ return 0; } } function _writeCacheEntry($source){ $this->_checkCacheDir(); $this->_updateCacheArray($source); } function _updateCacheArray($source){ foreach($this->cacheData as $key=>$val){ } $new[$key]= $val; } $this->cacheData = $new; }else{ } } } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // test data below once you are happy how it works just remove this stuff //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // bbc news stories $newsSources['BBC']['world']="http://news.bbc.co.uk/rss/newsonline_uk_edition/world/rss091.xml"; $newsSources['BBC']['uk']="http://news.bbc.co.uk/rss/newsonline_uk_edition/uk/rss091.xml"; $newsSources['BBC']['england']="http://news.bbc.co.uk/rss/newsonline_uk_edition/england/rss091.xml"; $newsSources['BBC']['norther ireland']="http://news.bbc.co.uk/rss/newsonline_uk_edition/northern_ireland/rss091.xml"; $newsSources['BBC']['scotland']="http://news.bbc.co.uk/rss/newsonline_uk_edition/scotland/rss091.xml"; $newsSources['BBC']['wales']="http://news.bbc.co.uk/rss/newsonline_uk_edition/wales/rss091.xml"; $newsSources['BBC']['business']="http://news.bbc.co.uk/rss/newsonline_uk_edition/business/rss091.xml"; $newsSources['BBC']['uk politics']="http://news.bbc.co.uk/rss/newsonline_uk_edition/uk_politics/rss091.xml"; $newsSources['BBC']['health']="http://news.bbc.co.uk/rss/newsonline_uk_edition/health/rss091.xml"; $newsSources['BBC']['education']="http://news.bbc.co.uk/rss/newsonline_uk_edition/education/rss091.xml"; $newsSources['BBC']['science technology']="http://news.bbc.co.uk/rss/newsonline_uk_edition/sci/tech/rss091.xml"; $newsSources['BBC']['technology']="http://news.bbc.co.uk/rss/newsonline_uk_edition/technology/rss091.xml"; $newsSources['BBC']['entertainment']="http://news.bbc.co.uk/rss/newsonline_uk_edition/entertainment/rss091.xml"; $newsSources['BBC']['talking point']="http://news.bbc.co.uk/rss/newsonline_uk_edition/talking_point/rss091.xml"; $newsSources['BBC']['magazine']="http://news.bbc.co.uk/rss/newsonline_uk_edition/magazine/rss091.xml"; $newsSources['BBC']['week at a glance']="http://news.bbc.co.uk/rss/newsonline_uk_edition/week_at-a-glance/rss091.xml"; $newsSources['BBC']['programmes']="http://news.bbc.co.uk/rss/newsonline_uk_edition/programmes/rss091.xml"; // wired.com $newsSources['Wired']['technology stories']="http://www.wired.com/news/feeds/rss2/0,2610,3,00.xml"; // yahoo $newsSources['Yahoo']['Top Stories']="http://rss.news.yahoo.com/rss/topstories"; /*foreach($newsSources as $name=>$array){ echo $name; echo "<form method=post action=".$_SERVER['PHP_SELF'].">n"; echo "<select name=source>n"; foreach($array as $key=>$val){ $sel = ($val == $source)? " SELECTED " : ""; echo "<option $sel value=$val>$keyn"; } echo "</select>n"; echo "<input type=submit name=go value=Go>n"; echo "</form>n"; }*/ //++++++++++++++++ // script usage | //++++++++++++++++ #$source = "http://www.newscientist.com/syndication/news.rdf"; #$go = 1; ?>
wyskakuje taki blad:
Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\1\klient_1\newsReader.php on line 66
a 66 linia to:
<?php function _startToCollect($n){ } ?>
jak to naprawic?