Minulla on siis lähde, josta saan erikoisessa muodossa olevia tiedostoja. Haluaisin purkaa sen muuttujiin, jotta sen voi tulostaa halumassaan muodossa. Tiedoston latausta tai tulostusta ei tarvitse tässä käsitellä. Saan tiedostoni muuttujaan ja se pitää siis pilkkoa eri muuttujiksi. Arrayllä menee varmaankin.
Tässä esimerkki tiedosto:
[Reference] tieto1=2345 tieto2="jotakin" tieto3="Näitä tietoja voi olla erimäärä ja ne voivat olla minkä nimisiä vain" tieto4="Ne ovat tekstiä tai luku" lisää="teksi on lainausmerkeissä" [alakohta] tietoa="Voi olla alakohtia" plus="ja niissä tietoa" luku=231413243 [alakohta2] alakohtia="voi olla monta" [ala] 123="alakohdilla voi olla alakohtia" [kohta] Nimi="kohta" [Reference] nimi="toinen tietue" [hahmot] nimi="hahmot" muuta="sisältää tiedot hahmoista" [ape] nimi="ape" rotu="apina" [matti] nimi="matti" rotu="ihminen"
Millaisiin muuttujiin haluaisit siirtää nuo tiedot? Sisäkkäisiin taulukoihin vai mihin? Onko tiedot sisennetty aina samalla tavalla? Voiko yhden tietueen tai alakohdan sisällä olla useita samannimisiä tietoja tai alakohtia? Miten tiedot pitää tulostaa sivulle?
Nämä kaikki asiat vaikuttavat siihen, miten monimutkainen toteutus tarvitaan.
Antti Laaksonen kirjoitti:
Millaisiin muuttujiin haluaisit siirtää nuo tiedot? Sisäkkäisiin taulukoihin vai mihin?
Ajattelin moniuloitteisia arraytä..
Antti Laaksonen kirjoitti:
Onko tiedot sisennetty aina samalla tavalla?
Sisennys on aina noin, mutta sisennyksenä on tab eli \t..
Antti Laaksonen kirjoitti:
Voiko yhden tietueen tai alakohdan sisällä olla useita samannimisiä tietoja tai alakohtia?
Voi olla saman nimisiä. Saman nimisten perään voisi lisätä järjestys numeron. [Reference] on siitä erikoinen, että se määrittää kokonaan toisista refeistä riippumattoman tietueen, joten sen voi vain numeroida: $data[0]['ala'], $data[1]['ala']...
Antti Laaksonen kirjoitti:
Miten tiedot pitää tulostaa sivulle?
Kun ne ovat arrayssä, niin voi tulostaa ne for(each):lla taulukkoon tai listaan valiten haluamani kohdat..
PHP:n tuhansien funktioiden kirjasto sisältää ainakin jonkinlaisen ratkaisun tähänkin (nuo alakohdat eivät vain taida mennä kuten haluat):
https://www.php.net/manual/fi/function.parse-ini-file.php
Toisaalta eipä tuota nyt kovin vaikea ole itsekään parsia. Jos rivi alkaa [ merkillä, tehdään uusi taulukon solu. Sitten tehdään siihen soluun alasoluja, kunnes tulee [ merkki (tai tiedoston loppu). Toisaalta jos edessä on välilyöntejä, tehdään lisää alasoluja saman solun alle.
Aihe on jo aika vanha, joten et voi enää vastata siihen.