petterg Skrevet 29. mai 2007 Del 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. Lenke til kommentar
Ståle Skrevet 30. mai 2007 Del Skrevet 30. mai 2007 (endret) Nei, dette var 101% feil. Sorry! Endret 30. mai 2007 av Ståle Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 30. mai 2007 Del 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 } } Lenke til kommentar
jorgis Skrevet 30. mai 2007 Del 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? Lenke til kommentar
Peter Skrevet 30. mai 2007 Del 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 Lenke til kommentar
Ståle Skrevet 30. mai 2007 Del 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* Lenke til kommentar
petterg Skrevet 31. mai 2007 Forfatter Del Skrevet 31. mai 2007 Takker for respons. Ser ut som jeg får litt å leke med til helgen Lenke til kommentar
phun-ky Skrevet 6. juni 2007 Del 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;) Lenke til kommentar
petterg Skrevet 17. juni 2007 Forfatter Del 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 Lenke til kommentar
pulse Skrevet 17. juni 2007 Del Skrevet 17. juni 2007 SimpleXML sliter med æ,ø,å! Er mulig du kan bruke: utf8_decode($string); når den henter ut den aktuelle dataen? Lenke til kommentar
petterg Skrevet 17. juni 2007 Forfatter Del 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! Lenke til kommentar
pulse Skrevet 17. juni 2007 Del 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? Lenke til kommentar
petterg Skrevet 17. juni 2007 Forfatter Del 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". Lenke til kommentar
pulse Skrevet 17. juni 2007 Del 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. Lenke til kommentar
erkos Skrevet 21. juni 2007 Del 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 Lenke til kommentar
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å