Autor | Zpráva | ||
---|---|---|---|
Ondrra Profil * |
#1 · Zasláno: 1. 5. 2005, 11:55:00
Ahoj,
potrebuji v php vygenerovat xml soubor a ten pak na cizí webové stránce nějakým způsobem rozložit. Udělal jsem si php skript (xmldata.php), který když spustím, tak se mi z databáze vytvoří xml struktura. Ted jsem chtel pomocí simplexml_load_file('xmldata.php'); načíst potřebná data. Nicméně funkce akceptuje pouze soubory s příponou xml. Jak mám tedy vytvořit soubor s příponou .xml tak, aby při každém jeho zavolání vrátil aktuální data z databáze? Potřebuji taky, aby xml soubor obsahoval data, která si uživatel vyžádal. Např. na cizí webové stránce bude formulář s výběrem různých druhů produktů. Po odeslání by se z mé databáze vygeneroval nějaký ten xml soubor s urcitými a aktualnimi daty a tato data by se zobrazila na cizí webové stránce. Předem díky za rady |
||
thingwath Profil |
#2 · Zasláno: 1. 5. 2005, 16:59:27
Simplexml_load_file načítá ze souboru, tudíž je pro tento případ na první pohled nepoužitelná. Použíj simplexml_load_string, s tím, že si výstup toho skriptu uložíš do řetězce (to už buď děláš, nebo přes http://www.php.net/manual/en/ref.outcontrol.php).
Druhou otázku moc nechápu, zkus ji trochu rozvést :-) |
||
Ondrra Profil * |
#3 · Zasláno: 1. 5. 2005, 17:49:54
Dik, ale stale mi to neni moc jasne, jak je to s tim ulozenim vystupu toho skriptu do retezce. Zkusil jsem nasledujici kod a ma to jednu chybku. A to ze mi funkce include vypise data z xml souboru a funkce var_dump vypise strukturu xml nasledovne. Jak se to tedy ma spravne nacist do toho retezce? Dik
ob_start(); include "xmldata.php"; $vystup = ob_get_contents(); ob_end_flush(); $xml = $xml = simplexml_load_string($vystup); var_dump($xml); |
||
thingwath Profil |
#4 · Zasláno: 1. 5. 2005, 18:07:26
Tohle by mělo fungovat, tedy, nevím proč tam máš dvakrát to $xml =, ale na pohled v tom nevidím problém. Zkus přesně popsat co to dělá, připoj třeba nějaký ukázkový výstup, prohlédni logy.
|
||
Ondrra Profil * |
#5 · Zasláno: 1. 5. 2005, 18:23:53
Tento kod:
------------------------------------------------------- ob_start(); include "xmldata.php"; $vystup = ob_get_contents(); ob_end_flush(); echo "<br /><br />"; $xml = simplexml_load_string($vystup); var_dump($xml); ------------------------------------------------------- mi v prohlizeci zobrazi toto: ------------------------------------------------------- pokus1pokus2pokus3pokus1pokus2pokus3pokus1pokus2pokus3pokus1pokus2poku s3pokus1pokus2pokus3 object(SimpleXMLElement)#1 (1) { ["produkt"]=> array(5) { [0]=> object(SimpleXMLElement)#2 (3) { ["nazev"]=> string(6) "pokus1" ["vyrobce"]=> string(6) "pokus2" ["adresa"]=> string(6) "pokus3" } [1]=> object(SimpleXMLElement)#3 (3) { ["nazev"]=> string(6) "pokus1" ["vyrobce"]=> string(6) "pokus2" ["adresa"]=> string(6) "pokus3" } [2]=> object(SimpleXMLElement)#4 (3) { ["nazev"]=> string(6) "pokus1" ["vyrobce"]=> string(6) "pokus2" ["adresa"]=> string(6) "pokus3" } [3]=> object(SimpleXMLElement)#5 (3) { ["nazev"]=> string(6) "pokus1" ["vyrobce"]=> string(6) "pokus2" ["adresa"]=> string(6) "pokus3" } [4]=> object(SimpleXMLElement)#6 (3) { ["nazev"]=> string(6) "pokus1" ["vyrobce"]=> string(6) "pokus2" ["adresa"]=> string(6) "pokus3" } } } ---------------------------------------------------------- No a me tam vadi ten prvni radek pokus1pokus2........ Nemuze to byt zpusobeny tim, ze to testuji lokálně? Ne tedy na 2 serverech, jak to potom bude ve skutecnosti. |
||
thingwath Profil |
#6 · Zasláno: 1. 5. 2005, 18:33:15
Aha, použij ob_end_clean místo flush.
|
||
Ondrra Profil * |
#7 · Zasláno: 1. 5. 2005, 19:11:35
Diky. Jeste mam jeden problem: nevis, proc se mi v tom souboru, kde zobrazim pomoci simplexml data, zobrazují špatně české znaky? Kódování mám v obou souborech nastaveno na windows-1250
|
||
thingwath Profil |
#8 · Zasláno: 1. 5. 2005, 19:32:09
Nevím, zkus si zkontrolovat kódování všude, kde s těmi daty přicházíš do styku, ale vážně nemám tušení kde by to mohlo být.
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0