Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Tiedoston purkaminen

Ape [02.01.2007 14:00:06]

#

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"

Antti Laaksonen [02.01.2007 14:41:50]

#

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.

Ape [02.01.2007 16:05:57]

#

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..

kayttaja-2791 [02.01.2007 16:35:06]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta