petterg Skrevet 29. mai 2007 Skrevet 29. mai 2007 Er det noen fikse måter å kovertere en xml til et php array? xml ser slik ut: (forkortet og sensurert dump fra en database) <?xml version="1.0" encoding="UTF-8" ?> <FMPXMLRESULT xmlns="http://www.xxxxx"> <DATABASE DATEFORMAT="D.m.yyyy" LAYOUT="" NAME="BestCRM" RECORDS="1389" TIMEFORMAT="k:mm:ss" /> <METADATA> <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="FELT1" TYPE="NUMBER" /> <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="FELT2" TYPE="TEXT" /> <FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="FELT3" TYPE="TEXT" /> </METADATA> <RESULTSET FOUND="3"> <ROW MODID="7" RECORDID="105010"> <COL> <DATA>1</DATA> </COL> <COL> <DATA>TEXT1a</DATA> </COL> <COL> <DATA>TEXT1b</DATA> </COL> </ROW> <ROW MODID="7" RECORDID="105608"> <COL> <DATA>2</DATA> </COL> <COL> <DATA>TEXT2a</DATA> </COL> <COL> <DATA>TEXT2b</DATA> </COL> </ROW> <ROW MODID="7" RECORDID="105901"> <COL> <DATA>3</DATA> </COL> <COL> <DATA>TEXT3a</DATA> </COL> <COL> <DATA>TEXT3b</DATA> </COL> </ROW> </RESULTSET> </FMPXMLRESULT> Det jeg ønsker meg er noe som lager et array i php, og leser en rad av gangen fra filen, slik at raden kan behandles før neste rad leses, slik at dette ikke skal spise for mye resurrser. Ved lesing av første rad bør arrayet se ut omtrent slik: $a= array( 'FELT1'=>1, 'FELT2'=>'TEXT1a', 'FELT3'=>'TEXT1b' ); Noen smarte triks? er litt NOOB på dette.
Ståle Skrevet 30. mai 2007 Skrevet 30. mai 2007 (endret) Nei, dette var 101% feil. Sorry! Endret 30. mai 2007 av Ståle
Gjest Slettet-rXRozPkg Skrevet 30. mai 2007 Skrevet 30. mai 2007 Bruk SimpleXML hvis du har muligheten. Du kan veldig enkelt (doh!) hente ut dataene direkte, eller dytte det over i et array, med noe ala dette: foreach($xml->resultset->row as $row) { foreach($row->col as $col) { bruk så $col->data } }
jorgis Skrevet 30. mai 2007 Skrevet 30. mai 2007 http://thewarp.org/blog/index.cfm?mode=ent...4DA4E070AEC8CF2feks? 8736867[/snapback] Når trådstarter poster i PHP-kategorien er det kanskje ikke helt passende å linke til et eksempel i ActionScript?
Peter Skrevet 30. mai 2007 Skrevet 30. mai 2007 (endret) http://no.php.net/manual/en/function.xml-p...into-struct.php Oppretter to arrayer der den ene inneholder pekere(indekser) til den andre. Kan også titte på kommentarene om du heller vil bruke en av kodene der... Endret 30. mai 2007 av Nazgul
Ståle Skrevet 30. mai 2007 Skrevet 30. mai 2007 http://thewarp.org/blog/index.cfm?mode=ent...4DA4E070AEC8CF2feks? 8736867[/snapback] Når trådstarter poster i PHP-kategorien er det kanskje ikke helt passende å linke til et eksempel i ActionScript? 8737289[/snapback] som du ser, postet jeg litt tidlig. Har ingen bedre unskyldinger enn det =/ *fjerne innlegg*
petterg Skrevet 31. mai 2007 Forfatter Skrevet 31. mai 2007 Takker for respons. Ser ut som jeg får litt å leke med til helgen
phun-ky Skrevet 6. juni 2007 Skrevet 6. juni 2007 hvis du kommer deg inn på : http://www.devdump.com/phpxml.php (siden var nede når jeg prøvde) så vil du finne en parser som gjør akkurat det du ber om;)
petterg Skrevet 17. juni 2007 Forfatter Skrevet 17. juni 2007 (endret) SimpleXML sliter med æ,ø,å! $imp = implode("", $file); $xml = new SimpleXMLElement($imp); en print_r($imp) viser æ,ø,å riktig, mens en print_r($xml) ikke gjør det. første linje i xml fila er <?xml version="1.0" encoding="UTF-8" ?> Man skulle da tro at SimpleXML skulle ha gode odds for å lese dette riktig. Noen tips for å fikse dette? Edit: Hvis jeg endrer på xml-fila og skriver en annen tegnsettkode i første linje viser SimpleXML æ,ø,å som andre tegn enn da det sto UTF-8 der. Den tar altså hensyn til spesifisert tegnsett, men likevel går noe galt.... Endret 17. juni 2007 av petterg
pulse Skrevet 17. juni 2007 Skrevet 17. juni 2007 SimpleXML sliter med æ,ø,å! Er mulig du kan bruke: utf8_decode($string); når den henter ut den aktuelle dataen?
petterg Skrevet 17. juni 2007 Forfatter Skrevet 17. juni 2007 Der leser den riktig Men nå, om jeg setter inn i mysql klipper den all tekst f.o.m de samme 3 bokstavene!
pulse Skrevet 17. juni 2007 Skrevet 17. juni 2007 Der leser den riktig Men nå, om jeg setter inn i mysql klipper den all tekst f.o.m de samme 3 bokstavene! 8879531[/snapback] Er ikke helt sikker på hva du mener med "setter inn mysql" men du kan jo prøve kommandoen utf8_encode($string); selvom jeg ikke tror dette er en -god- løsning på problemet. Mulig du må endre litt på oppsettet av databasen, men her er jeg på tynn is. Kunne du forklart problemet nærmere?
petterg Skrevet 17. juni 2007 Forfatter Skrevet 17. juni 2007 når jeg har fått et array ut av xml'n setter jeg noen av verdiene fra arrayet inn i en mysql database. Da arrayet inneholdt rare tegn (i steden for æ,ø,å) før utf8_encode ble alle de rare tegnene lagret som rare tegn (ikke som æ,ø,å). Med utf8_encode fungerer æ,ø,å som stoptegn. Altså om jeg forsøker å lagre "abcødef" blir det lagret som bare "abc".
pulse Skrevet 17. juni 2007 Skrevet 17. juni 2007 når jeg har fått et array ut av xml'n setter jeg noen av verdiene fra arrayet inn i en mysql database.Da arrayet inneholdt rare tegn (i steden for æ,ø,å) før utf8_encode ble alle de rare tegnene lagret som rare tegn (ikke som æ,ø,å). Med utf8_encode fungerer æ,ø,å som stoptegn. Altså om jeg forsøker å lagre "abcødef" blir det lagret som bare "abc". 8881082[/snapback] Jeg kan desverre ikke hjelpe med dette. Men har en mistanke om at det kan ha noe med oppsettet av MySQL på din server. Prøv og søke etter andre poster som kan ha med norske tegnsett og MySQL evt prøv og spør i database / server forumet.
erkos Skrevet 21. juni 2007 Skrevet 21. juni 2007 Hei Problemet ligger i funksjonen xml_parse() som sikkert er brukt i SimpleXML. Jeg hadde samme problem med æøå i en webdav-klient for php. xml_parse() krever at argumentet er i utf-8-format. Å gjøre om input med utf8_encode() først hjalp ikke. En quick-n-dirty løsning på problemet er å lage deg en funksjon som du kaller rett før xml_parser() blir kjørt, som gjør om æøåÆØÅ til koder, som du endrer tilbake etterpå med en annen funksjon. Lykke til Erik
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå