Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa RSS parserom

[es] :: PHP :: Problem sa RSS parserom

[ Pregleda: 2750 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Zero-Cool
Novi Sad

Član broj: 38821
Poruke: 144
*.sbb.co.yu.



Profil

icon Problem sa RSS parserom06.04.2005. u 21:55 - pre 231 meseci
Imam problem sa RSS parserom koji sam skinuo sa phpclasses-a.Naime ovaj parser je u pocetku lepo radio, ali od skoro nece nista da mi ucita samo se muci da downloaduje stranicu, ali na kraju uvek ispise no response, try again.
Incae iskoristio sam ovaj parser da parsira RSS feed sa sajta i da ga prosledjuje na wap stranicu.Ako moze neko neka pregleda kod i neka mi kaze jel ima gresaka, i koje su jer ja stvarno ne mogu da provalim.

Code:

<?php
header('Content-type: text/vnd.wap.wml');
      echo '<?xml version="1.0" encoding="UTF-8"?>
            <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
            <wml>
            <head>
            </head>
            <card id="first" title="Novosti"><p align="left">'."\n";

// define hooks to rss_parser class as xml functions do not allow object methods as handlers.
function rss_start_element($parser, $name, $attributes) {
  global $rss;
  $rss->start_element($parser, $name, $attributes);
}

function rss_end_element($parser, $name) {
  global $rss;
  $rss->end_element($parser, $name);
}

function rss_character_data($parser, $data) {
  global $rss;
  $rss->character_data($parser, $data);
}


class rss_parser {

// constructor. setup parser options and handlers.
function rss_parser() {
  $this->error = '';
  $this->file = '';

  $this->channel = array();
  $this->data = '';
  $this->stack = array();
  $this->num_items = 0;

  $this->xml_parser = xml_parser_create();
  xml_set_element_handler($this->xml_parser, "rss_start_element", "rss_end_element");
  xml_set_character_data_handler($this->xml_parser, "rss_character_data");
}

function character_data($parser, $data) {
  if (empty($this->data)) $this->data = trim($data); // concatenate non-parsed data...
  else $this->data .= ' '.trim($data);               // and get rid of white space.
}

function start_element($parser, $name, $attrs) {
  switch($name) {
    case 'RSS':
      break;

    case 'CHANNEL':
      break;

    case 'IMAGE':
      array_push($this->stack, $name);
      break;

    case 'ITEM':
      array_push($this->stack, $name);
      array_push($this->stack, $this->num_items); // push item index.
      $this->item[$this->num_items] = array();
      $this->num_items++;
      break;

    case 'TEXTINPUT':
      array_push($this->stack, $name);
      break;

    default:
      array_push($this->stack, $name);
      break;

  }
}

function end_element($parser, $name) {
  switch ($name) {
    case 'RSS':
      break;

    case 'CHANNEL':
      break;

    case 'IMAGE':
      array_pop($this->stack);
      break;

    case 'ITEM':
      array_pop($this->stack);
      array_pop($this->stack);
      break;

    case 'TEXTINPUT':
      array_pop($this->stack);
      break;

    default: // child element.
      $element = (implode("']['",$this->stack));
      eval("\$this->channel['$element']=\$this->data;"); // this does all the hard work.
      array_pop($this->stack);
      $this->data = '';
      break;
  }
}


function parse() {
  if (!($fp = @fopen($this->file, "r"))) {
    $this->error = "Could not open RSS source \"$this->file\".";
    return false;
  }
  while ($data = fread($fp, 4096)) {
    if (!xml_parse($this->xml_parser, $data, feof($fp))) {
      $this->error = sprintf("XML error: %s at line %d.",
        xml_error_string(xml_get_error_code($this->xml_parser)),
        xml_get_current_line_number($this->xml_parser));
      return false;
    }
  }
  xml_parser_free($this->xml_parser);
  return true;
}
} // class rss_parser.

$rss = new rss_parser();
$rss->file = 'http://news.sofub.org.yu/rss.php';
$rss->parse() or die($rss->error);
if ($rss->error) print $rss->error;

$data = $rss->channel;
$number = count($data['ITEM']);
for ($i=0; $i<3; $i++) {
echo '<strong>'.$data['ITEM'][$i]['TITLE'].'</strong><br/>';
echo '<a hfer="'.$data['ITEM'][$i]['LINK'].'">link</a><br/>';
$descript = $data['ITEM'][$i]['DESCRIPTION'];
$descript = str_replace('<font color="#0466fc">','',$descript);
$descript = str_replace('</font>','',$descript);
echo $descript.'<br/>';
echo '-------<br/>';
}
echo '</p><br />
<p align="center"><a href="index.wml">Pocetna strana</a></p><br /><br />
</card></wml>';
?>


Hvala unapred na pomoci.
Mess with the best die like a rest!!!
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Problem sa RSS parserom06.04.2005. u 23:48 - pre 231 meseci
Hosting na Veratu?
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

Zero-Cool
Novi Sad

Član broj: 38821
Poruke: 144
*.sbb.co.yu.



Profil

icon Re: Problem sa RSS parserom07.04.2005. u 06:50 - pre 231 meseci
Nije hosting na veratu,hosting je na neobee-ju (Novi Sad).
Mess with the best die like a rest!!!
 
Odgovor na temu

webmaster1
Luka Pilipovic
BG

Član broj: 24183
Poruke: 302
*.ptt.yu.

ICQ: 160820372
Sajt: www.montenegro-sea.com


Profil

icon Re: Problem sa RSS parserom07.04.2005. u 07:22 - pre 231 meseci

Pa mozda su ga i oni zatvorili ko ovi sa verata....ccc...
a kad smo vec kod toga, kako zaobici ovaj problem?
Privatni smeštaj u Crnoj Gori
www.montenegro-sea.com.
 
Odgovor na temu

Zero-Cool
Novi Sad

Član broj: 38821
Poruke: 144
*.sbb.co.yu.



Profil

icon Re: Problem sa RSS parserom08.04.2005. u 12:28 - pre 230 meseci
Zar niko ne moze da pogleda kod parsera da vidi jel ima gresaka (posto ga nisam ja pisao, a slabo kontam kako to funkcionise). Parser je radio i to lepo, medjutim odjednom je prestao da funkcionise.

Sto se tice neobee-ja sigurno ga nisu oni ukinuli.
Mess with the best die like a rest!!!
 
Odgovor na temu

[es] :: PHP :: Problem sa RSS parserom

[ Pregleda: 2750 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.