Avatar billede jimpp Nybegynder
19. april 2005 - 14:45 Der er 6 kommentarer og
1 løsning

Læs XML med PHP

Okay jeg er lidt grøn, så få nok brug for hælp til denne eher

Kører Med PHP5 på apache 2.0

Prøver at læse denne fil og få et output: http://gamepad.dk/rss/anmeldelser.xml

FEJL:

Warning: filesize() [function.filesize]: stat failed for http://gamepad.dk/rss/anmeldelser.xml in C:\Programmer\Apache Group\Apache2\htdocs\spil\admin\moduler\xml_gamespot.php on line 61

Warning: fread() [function.fread]: Length parameter must be greater than 0. in C:\Programmer\Apache Group\Apache2\htdocs\spil\admin\moduler\xml_gamespot.php on line 61

-------------------------------------------------------

koden:

    $filename ="http://gamepad.dk/rss/anmeldelser.xml";
   
    $starttags = array(
    "titel" => "<p><b>",
    "format" => "<p>",
    "link" => "<p><i>"
    );
   
    $endtags = array(
    "titel" => "</b></p>",
    "format" => "</p>",
    "link" => "</i></p>"
    );
   
    function startElement($parser, $name, $attrs)
    {
       
        global $starttags;
       
        if ($starttags[$name])
        {
            echo $starttags[$name];
        }
       
    }
   
    function endElement($parser, $name)
    {
   
        global $endtags;
       
        if ($endtags[$name])
        {
       
            echo $endtags[$name];
       
        }
   
    }
   
    function characterData($parser, $date)
    {
       
        echo $data;
       
    }
   
    //Indstil parseren ;)
   
    $xml_parser = xml_parser_create();
   
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
   
    $fp = fopen("$filename", "r") or die("kunne ikke laese xml filen");
   
    while($data = fread($fp, filesize ($filename))) # LINJE 61
    {
   
        xml_parse($xml_parser, $data, feof($fp)) or die (sprint("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);

------------------------

Hvad gør jeg galt?
Avatar billede zeled Nybegynder
19. april 2005 - 15:21 #1
Du kan ikke bruge filesize() på remote filer (via http)

fra PHP manualen:

filesize
Gets file size (PHP 3, PHP 4 )
int filesize ( string filename )

Returns the size of the file in bytes, or FALSE in case of an error.

The results of this function are cached. See clearstatcache() for more details.

This function will not work on remote files; the file to be examined must be accessible via the server's filesystem.
Avatar billede jimpp Nybegynder
19. april 2005 - 15:25 #2
okay, nogen ide om hvad jeg kan bruge istedet?
Avatar billede zeled Nybegynder
19. april 2005 - 15:31 #3
Er XML filen remote så kan du evt. downloade den og behandle den lokalt.
Avatar billede zeled Nybegynder
19. april 2005 - 15:32 #4
fgets() kan du bruge som alternativ
Avatar billede jimpp Nybegynder
19. april 2005 - 20:54 #5
Det ville ødeligge ideen at have den lokalt.

jeg prøver mig lige frem med fgets :) (er meget grøn mht. PHP, er normalt ASP-mand)
Avatar billede jimpp Nybegynder
19. april 2005 - 20:55 #6
Okay den laver ikke fejl men udskriver heller ikke noget :(
Avatar billede jimpp Nybegynder
21. april 2005 - 09:09 #7
lukker
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