/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PHP's xml parser
Fra : Nicolai Foss


Dato : 26-08-03 16:42

Hej,

jeg har et spørgsmål ang. PHPs xml parser funktioner og de danske tegn æ,ø
og å.

Jeg har en xml/rss formateret side (http://www.alugod.dk/rss.php) som jeg
ved hjælp at php vil omdanne til en side med en overskrift (der indeholder
link til resten af nyheden) samt en kort beskrivelse - eksempel:
http://www.alugod.dk/rss3.php

Mit problem er at de danske tegn æ,ø og å kommer til at se mærkelige ud.
Er der nogen der har en forklaring og en løsning?

Koden til min parser:

$xml_parser = xml_parser_create("UTF-8");
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$fp = fopen("http://www.alugod.dk/rss.php","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("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);

hvor "startElement", "endElement" og "characterData" er definerede
funktioner

Hele koden kan ses her: http://www.alugod.dk/rss3.txt

MVH
Nicolai
--



 
 
Mikkel Andreasen (26-08-2003)
Kommentar
Fra : Mikkel Andreasen


Dato : 26-08-03 16:51

"Nicolai Foss" <nicolaifossNOSPAM@mail.tele.dk> skrev i en meddelelse
news:bifv4n$gp4$1@sunsite.dk...
> Hej,
>
> jeg har et spørgsmål ang. PHPs xml parser funktioner og de danske tegn æ,ø
> og å.
>
> Jeg har en xml/rss formateret side (http://www.alugod.dk/rss.php) som jeg
> ved hjælp at php vil omdanne til en side med en overskrift (der indeholder
> link til resten af nyheden) samt en kort beskrivelse - eksempel:
> http://www.alugod.dk/rss3.php
>
> Mit problem er at de danske tegn æ,ø og å kommer til at se mærkelige ud.
> Er der nogen der har en forklaring og en løsning?
>
> Koden til min parser:
>
> $xml_parser = xml_parser_create("UTF-8");

Har du prøvet med xml_parser_create() altså uden UTF-8, så benytter den sig
af standard ISO-8859-1

Mikkel



Mikkel Andreasen (26-08-2003)
Kommentar
Fra : Mikkel Andreasen


Dato : 26-08-03 16:55

"Mikkel Andreasen" <news@mikkel-andreasen.com> skrev i en meddelelse
news:3f4b81f5$0$5190$edfadb0f@dread11.news.tele.dk...
> "Nicolai Foss" <nicolaifossNOSPAM@mail.tele.dk> skrev i en meddelelse
> news:bifv4n$gp4$1@sunsite.dk...
> > Hej,
> >
> > jeg har et spørgsmål ang. PHPs xml parser funktioner og de danske tegn
æ,ø
> > og å.
> >
> > Jeg har en xml/rss formateret side (http://www.alugod.dk/rss.php) som
jeg
> > ved hjælp at php vil omdanne til en side med en overskrift (der
indeholder
> > link til resten af nyheden) samt en kort beskrivelse - eksempel:
> > http://www.alugod.dk/rss3.php
> >
> > Mit problem er at de danske tegn æ,ø og å kommer til at se mærkelige ud.
> > Er der nogen der har en forklaring og en løsning?
> >
> > Koden til min parser:
> >
> > $xml_parser = xml_parser_create("UTF-8");
>
> Har du prøvet med xml_parser_create() altså uden UTF-8, så benytter den
sig
> af standard ISO-8859-1

Gør ingen forskel.. Sorry!

Mikkel



Mikkel Andreasen (26-08-2003)
Kommentar
Fra : Mikkel Andreasen


Dato : 26-08-03 17:22

"Nicolai Foss" <nicolaifossNOSPAM@mail.tele.dk> skrev i en meddelelse
news:bifv4n$gp4$1@sunsite.dk...
> Hej,
>
> jeg har et spørgsmål ang. PHPs xml parser funktioner og de danske tegn æ,ø
> og å.
>
> Jeg har en xml/rss formateret side (http://www.alugod.dk/rss.php) som jeg
> ved hjælp at php vil omdanne til en side med en overskrift (der indeholder
> link til resten af nyheden) samt en kort beskrivelse - eksempel:
> http://www.alugod.dk/rss3.php
>
> Mit problem er at de danske tegn æ,ø og å kommer til at se mærkelige ud.
> Er der nogen der har en forklaring og en løsning?
>
> Koden til min parser:
>
> $xml_parser = xml_parser_create("UTF-8");
> xml_set_element_handler($xml_parser, "startElement", "endElement");
> xml_set_character_data_handler($xml_parser, "characterData");
> $fp = fopen("http://www.alugod.dk/rss.php","r")
> or die("Error reading RSS data.");
> while ($data = fread($fp, 4096))
> xml_parse($xml_parser, $data, feof($fp))
> or die(sprintf("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);
>
> hvor "startElement", "endElement" og "characterData" er definerede
> funktioner

Hvis du i linien hvor du udskriver description tilføjer utf-8_decode() så
virker det. Så linien kommer til at hedde:
printf("<font
size=\"small\">%s</font><br>",htmlspecialchars(trim(utf8_decode($description
))));

Du kan også 'bare' sætte browseren til at læse UTF, så ser det også fint ud


Mikkel



Mikkel Andreasen (26-08-2003)
Kommentar
Fra : Mikkel Andreasen


Dato : 26-08-03 17:25

"Mikkel Andreasen" <news@mikkel-andreasen.com> skrev i en meddelelse
news:3f4b8925$0$5180$edfadb0f@dread11.news.tele.dk...
> "Nicolai Foss" <nicolaifossNOSPAM@mail.tele.dk> skrev i en meddelelse
> news:bifv4n$gp4$1@sunsite.dk...
> > Hej,
> >
> > jeg har et spørgsmål ang. PHPs xml parser funktioner og de danske tegn
æ,ø
> > og å.
> >
> > Jeg har en xml/rss formateret side (http://www.alugod.dk/rss.php) som
jeg
> > ved hjælp at php vil omdanne til en side med en overskrift (der
indeholder
> > link til resten af nyheden) samt en kort beskrivelse - eksempel:
> > http://www.alugod.dk/rss3.php
> >
> > Mit problem er at de danske tegn æ,ø og å kommer til at se mærkelige ud.
> > Er der nogen der har en forklaring og en løsning?
> >
> > Koden til min parser:
> >
> > $xml_parser = xml_parser_create("UTF-8");
> > xml_set_element_handler($xml_parser, "startElement", "endElement");
> > xml_set_character_data_handler($xml_parser, "characterData");
> > $fp = fopen("http://www.alugod.dk/rss.php","r")
> > or die("Error reading RSS data.");
> > while ($data = fread($fp, 4096))
> > xml_parse($xml_parser, $data, feof($fp))
> > or die(sprintf("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);
> >
> > hvor "startElement", "endElement" og "characterData" er definerede
> > funktioner
>
> Hvis du i linien hvor du udskriver description tilføjer utf-8_decode() så
> virker det. Så linien kommer til at hedde:
> printf("<font
>
size=\"small\">%s</font><br>",htmlspecialchars(trim(utf8_decode($description
> ))));

Og $title skal selvfølgelig også lige decodes...



Nicolai Foss (26-08-2003)
Kommentar
Fra : Nicolai Foss


Dato : 26-08-03 22:11


"Mikkel Andreasen" <news@mikkel-andreasen.com> wrote in message
news:3f4b89e8$0
> >
>
size=\"small\">%s</font><br>",htmlspecialchars(trim(utf8_decode($description
> > ))));
>
> Og $title skal selvfølgelig også lige decodes...
>
>
Takker - det virkede

Nicolai



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste