Kódování XML výstupu z DB – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Kódování XML výstupu z DB – PHP – Fórum – Programujte.comKódování XML výstupu z DB – PHP – Fórum – Programujte.com

 

dejnozka0
Duch
11. 3. 2011   #1
-
0
-

Ahoj,
peru se s generováním XML z hodnot MySQL tabulky tímto skriptem:

<?php
require("phpsqlajax_dbinfo.php");

function parseToXML($htmlStr) {
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}

// Opens a connection to a mySQL server
$connection=mysql_connect ($server, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}

// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "select * from opponents order by id";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}

header("Content-type: text/xml");

// Start XML file, echo parent node

echo '<markers>';
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){


// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'id="' . $row['id'] . '" ';
echo 'fullname="' . parseToXML ($row['fullname']) . '" ';
echo 'name="' . parseToXML ($row['name']) . '" ';
echo 'lat="' . $row['lat'] . '" ';
echo 'lng="' . $row['lng'] . '" ';
echo '/>';
}

// End XML file
echo '</markers>';
?>

Problém je v tom, že v tabulce je český znak. výstup vypadá:

V obsahu (content) typu Text byl nalezen neplatný znak. Při zpracování prostředku http://localhost/phpsqlajax_genxml2.php

Pokud ten záznam s českým znakem vynechám, funguje to bez problémů a aplikace, která je na tom založená, taky.
Prosím o radu, jak to vyřešit.
Děkuji moc.
PD

Nahlásit jako SPAM
IP: 178.216.84.–
Nefaritus
~ Redaktor
+2
Posthunter
11. 3. 2011   #2
-
0
-

Když jukneš do DB, je tam ten český znak normálně nebo je tam nějaká blbost typu Äí ?

Nahlásit jako SPAM
IP: 93.99.142.–
dejnozka0
Duch
11. 3. 2011   #3
-
0
-

V databázi je právě ten český znak normálně

Nahlásit jako SPAM
IP: 178.216.84.–
Nefaritus
~ Redaktor
+2
Posthunter
11. 3. 2011   #4
-
0
-

Zkus před příkaz, kde taháš data z DB dát

mysql_query("SET CHARACTER SET utf8");

s tím, že tam dáš znakovou sadu jakou používáš.

Nahlásit jako SPAM
IP: 93.99.142.–
dejnozka0
Duch
14. 3. 2011   #5
-
0
-

Děkuju moc, povedlo se. Uložil jsem záznamy v DB do stejného kódování jako ve skriptu, uložil jsem samotný skript ve stejném kódování a už to funguje.

Ještě jednou díky moc.
PD

Nahlásit jako SPAM
IP: 178.216.84.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý