Avatar billede proviben Novice
27. september 2005 - 11:19 Der er 8 kommentarer og
1 løsning

MagpieRSS og læsning af lokal fil

Refs.: http://sourceforge.net/project/showfiles.php?group_id=55691

Har afprøvet diverse MagpieRSS scripts, som alle har virket fuldt ud, men har dog problemer med følgende, som skal læse en lokal fil. Får følgende fejl:

Parse error: parse error, unexpected '.' in /var/www/xxx/html/test.php on line 11 

<?php

define('MAGPIE_DIR', 'magpierss/');
require_once(MAGPIE_DIR.'rss_fetch.inc');
require_once(MAGPIE_DIR.'rss_parse.inc');

$rss_file = 'data.xml';
$rss_string = read_file($rss_file);
$rss = new MagpieRSS( $rss_string );
if ( $rss and !$rss->ERROR) { ...display rss... } else { echo "Error: " . $rss->ERROR; } # efficiently read a file into a string # in php >= 4.3.0 you can simply use file_get_contents() # function read_file($filename) { $fh = fopen($filename, 'r') or die($php_errormsg); $rss_string = fread($fh, filesize($filename) ); fclose($fh); return $rss_string; }

?>
Avatar billede coderdk Praktikant
27. september 2005 - 11:34 #1
Og hvad er linje 11?
Avatar billede proviben Novice
27. september 2005 - 12:03 #2
Har lige justeret scriptet i hånden, idet der ikke var lineskift i sourcen. Er linie 9 ikke omkring: echo "Error: " . $rss->ERROR; ?

Parse error: parse error, unexpected '.' in /var/www/xxx/html/test.php on line 9

<?php
define('MAGPIE_DIR', 'magpierss/');
require_once(MAGPIE_DIR.'rss_fetch.inc');
require_once(MAGPIE_DIR.'rss_parse.inc');
$rss_file = 'data.xml';
$rss_string = read_file($rss_file);
$rss = new MagpieRSS( $rss_string );
if ( $rss and !$rss->ERROR) {
...display rss...
}
else {
echo "Error: " . $rss->ERROR;
}
# efficiently read a file into a string
# in php >= 4.3.0 you can simply use file_get_contents()
#
function read_file($filename) {
$fh = fopen($filename, 'r') or die($php_errormsg);
$rss_string = fread($fh, filesize($filename) );
fclose($fh);
return $rss_string;
}
?>
Avatar billede coderdk Praktikant
27. september 2005 - 12:17 #3
Kunne det tænkes at det var "...display rss..." ? :)
Avatar billede proviben Novice
27. september 2005 - 13:02 #4
Jo, det var "...display rss..." som gav fejlen. (er nu fjernet) Dog så er der ikke noget output overhovedet. Point er dine coderdk.

Ønsker selvsagt et output fra den lokale fil, ligesom følgende script, som fx lister de fem nyeste poster fra Yahoo - fra en ekstern kilde.

Skal jeg oprette en ny tråd?

<?php
define('MAGPIE_DIR', 'magpierss/');
require_once(MAGPIE_DIR.'rss_fetch.inc');

$num_items = 5;
$rss = fetch_rss( 'http://rss.news.yahoo.com/rss/topstories' );
$items = array_slice($rss->items, 0, $num_items);


//display links recent blog entries:
echo "<ul><em>Latest blog additions:</em>\n";

foreach ($items as $item) {

$href = $item['link'];
$title = $item['title'];
$created = $item['created'];

echo "<li><a href=$href>$title</a> $created</li>\n";
}

echo "</ul>";
?>
Avatar billede coderdk Praktikant
27. september 2005 - 13:05 #5
Prøv med:

<?php

    define('MAGPIE_DIR', 'magpierss/');
    require_once(MAGPIE_DIR.'rss_fetch.inc');
    require_once(MAGPIE_DIR.'rss_parse.inc');
    $rss_file = 'data.xml';
    $rss_string = file_get_contents($rss_file);
    $rss = new MagpieRSS( $rss_string );
    if ( $rss and !$rss->ERROR)
    {
        $items = array_slice($rss->items, 0, $num_items);
        //display links recent blog entries:
        echo "<ul><em>Latest blog additions:</em>\n";
        foreach ($items as $item)
        {
            $href = $item['link'];
            $title = $item['title'];
            $created = $item['created'];
            echo "<li><a href=$href>$title</a> $created</li>\n";
        }
    }
    else
    {
        echo "Error: " . $rss->ERROR;
    }

?>
Avatar billede proviben Novice
27. september 2005 - 13:17 #6
Outputet er blot følgende:

Latest blog additions:
Avatar billede coderdk Praktikant
27. september 2005 - 13:28 #7
Ah, prøv at sætte: $num_items = 10;
i toppen...
Avatar billede proviben Novice
27. september 2005 - 14:17 #8
Crème de la crème det virker. Mange tak coderdk.
Avatar billede coderdk Praktikant
27. september 2005 - 14:20 #9
Bare i orden :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester