Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Z MySQLa do XMLa - problem z kodowaniem
Dawid Pytel
post
Post #1





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 15.09.2003

Ostrzeżenie: (0%)
-----


Witam

Na podstawie tekstu umieszczonego na Zend.com napisałem skrypt w php który generuje XMLa. Oto jego fragment:

[php:1:65cbdec755]<?php
function make_xml($wynik)
{
$doc = domxml_new_doc('1.0');

$root = $doc->create_element('userzy'); // główny węzeł
$root = $doc->append_child($root);

while($row=mysql_fetch_assoc($wynik))
{
$occ = $doc->create_element('user');
$occ = $root->append_child($occ);
foreach($row as $fieldname => $fieldvalue)
{
($occ);
$child = $doc->create_element($fieldname);
$child = $occ->append_child($child);

$value = $doc->create_text_node($fieldvalue);
$value = $child->append_child($value);
} //foreach
} //while

$xml_string = $doc->dump_mem(true);

return $xml_string;

}
?>[/php:1:65cbdec755]

zmienna $wynik to tablica zwracana z zapytania do MySQLa.
No i pojawia się problem z kodowaniem. Przy wywołaniu funkcji wsykakuje mi komunikat:

Kod
Warning: dump_mem() [function.dump-mem]: xmlEncodeEntitiesReentrant : input not UTF-8


W jaki spsób mozna o zmienić?
Wydaje mi sie ze mozna zmienic kodowanie pliku XMLa na ISO tylko nie mam pojecia jaka funkcja to zrobic, lub....

no wlasnie, jak to mozna zrobic?

Pozdrawiam
Go to the top of the page
+Quote Post
Dawid Pytel
post
Post #2





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 15.09.2003

Ostrzeżenie: (0%)
-----


No dobra, już wiem jak pozbyć się tego błędu. Wystarczy w

[php:1:eae85b0a40]<?php
$xml_string = $doc->dump_mem(true);
?>[/php:1:eae85b0a40]

dopisać

[php:1:eae85b0a40]<?php
$xml_string = $doc->dump_mem(true,'UTF-8');
?>[/php:1:eae85b0a40]

i wszystko działa tak jak powinno.

Tylko niestety muszę zmienić kodowanie na.... windows-1250
no i pojawia się tu następujący problem:

Kod
Warning:  dump_mem() [function.dump-mem]: output conversion failed due to conv error

in c:usrapachehttpdhtmlxmlindex.php on line 29


Macie pomysł jak się pozbyć tego komunikatu przy chcianym kodowaniu?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 14:45