Yritän tehdä php-skriptiä, joka hakee WoW Armorystä hahmon tietoja. Yritän saada siis osoitteesta http://eu.wowarmory.com/character-sheet.xml?r=Talnivarr&cn=Pumppaaja parsittua dataa. Tarkemmin riviltä 1542 (<div class="char-profile_name">) kohdat "Orc" ja "Warrior". Otan urlin sisällön talteen ja teen siitä dom documentin.
Kuitenkin, kun yritän parsia tuota divin sisältöä, niin noista välimerkeistä tulee jotain MYSTISIÄ TAIKAMERKKEJÄ, kun en saa millään toimimaan. Alkuperäisessä koodissa siis nuo kohdat on eroteltuna non-breaking spacella ( ) ja kun tulostan dom documentin avulla tuon divin sisällön, niin se tarjoaa "Level 80 Orc Warrior". Kun yritän explodettaa " "-merkillä, niin mitään ei tapahdu. Olen myös yrittänyt kaikki mahdolliset kombinaatiot non-breaking space-koodilla ja ei se vaan toimi. Ehkä se johtuu kellonajasta, ehkä olen tyhmä, tarvitsen apua! Millä ihmeellä saisin parsittua tuolta nuo kaksi viimeistä sanaa? Yritin jopa strpos-funktion avulla etsiä tuota "Orc" tai "Warrior" -sanaa, mutta eipä se löydä niitäkään...
Nyt apuja!
Explodeta  :lla.
Edit. Jos kirjoittaa pelkän niin tulee tyhjää.
Eikös ton sivun pitäs olla XML:ää koko homma? Anyways, en suoranaisesti korjaa alkuperäistä ongelmaa vaan tässä Armory-parser koodi jonka itse joskus löysin jostain ja muokkasin tarpeisiin sopivaksi: http://pastebin.com/qg6BtBST
Eli koko homma räjäyttää XML-dokumentin taulukkoon sopivaksi. Kyseiset hakemasi tiedot pitäis saada taulukosta poimittua näin:
<?php echo $parsed['characterinfo']['character']['race']." ".$parsed['characterinfo']['character']['class']; ?>
http://elitistjerks.com/f15/t14035-how_get_xml_php_armory/ tuol kans lisää juttuu
Kiitos vastauksista. Sain homman toimimaan.
Pistetään tähän samaan topicciin, kun ilmestyi toinenkin merkistöongelma. Kun otan pääsivulleni tietokannasta phpbb3:n viimeisimpiä viestejä, niin niissä ei toimi skandit. phpBB:n käyttämä tietokanta näyttäisi olevan utf8_bin, kuten myös sivunikin merkistökoodaus on UTF-8.
http://rynnakkomestari.net/ tuolta voi käydä katsomassa, vasemmassa alakulmassa.
Kysely:
SELECT forum_id, topic_id, post_subject, post_id FROM phpbb_posts ORDER BY post_id DESC LIMIT 10
tuosta sitten vain echotaan tiedot, mitään muuttamatta.
Viestit näyttäisivät olevan tietokannassa ISO 8859-1 -koodauksella. Muuta ne UTF-8:ksi utf8_encode -funktiolla.
<?php echo utf8_encode ($viesti);
Tai sitten koko yhteys UTF-8 funktiolla mysql_set_charset('utf8', $connect);
Oikea ratkaisu olisi asettaa tietokantayhteyteen oikea merkistö (mieluiten funktiolla mysql_set_charset, tarvittaessa kyselyllä SET NAMES 'utf8'), jotta MySQL osaisi palauttaa tekstin valmiiksi oikein. Datan tyyppinä kannassa kuuluu tietenkin olla tällöin teksti eikä esimerkiksi binaaridata.
Noniin, nyt pelittää. Osaako joku sanoa, että miksi tuolla sivuilla ei näy Operalla kaikki kuvat ja IE8:llä näkyy joissain kuvissa kummallisuuksia. Sekä HTML, että CSS ovat validia. Chromella ja Firefoxilla toimii ongelmitta.
Kuvat näkyvät Operalla kun JavaScriptin ottaa pois päältä. Supersleight.js -tiedostossa oleva koodi muuttaa joidenkin kuvien src:n "x.gif":ksi.
Aivan. Unohtui lisätä tuohon supersleightiin että vain ie <= 6.
Metabolix: muun muassa phpBB3 ja MediaWiki käyttävät tietokannassa binääriä säilytysmuotona, koska se mahdollistaa koko Unicoden merkistöskaalan käyttämisen. MySQL rajoittaa merkkivalikoimaa omassa UTF-8 -tuessaan turhan paljon, merkki saa olla maksimissaan 3 tavua (alle U+10000). Omat nykyiset MediaWiki-asennukseni käyttävät binääritauluja juuri tämän ongelman takia: löytyy tarvetta noille erikoisemmillekin merkeille.
Aihe on jo aika vanha, joten et voi enää vastata siihen.