Voisiko joku valaista mua hieman PHP:llä filejen kanssa touhuamisesta? Yritän tehdä aivan yksinkertaista scriptiä, joka kerää ensin tiedostosta jokaisen rivin yhteen arrayhyn. Tämä onnistuu kohtuullisen helposti fgets($string, 1024):llä while-loopin sisällä (mahtaako tuohon olla parempaa tapaa?).
Huomasin kuitenkin tehdessäni uuden loopin, etten saa tiedoston viimeistä riviä mitenkään esille. Olen kahlannut monet tutorialit läpi, tuloksetta. Mikä neuvoksi?
Onko PHP:ssä edes mitään komentoa, jolla saan arrayn viimeistä täytettyä arvoa hyödyntäen loopin pysähtymään tietyssä pisteessä?
Mikä neuvoksi?
Huomasin kuitenkin tehdessäni uuden loopin, etten saa tiedoston viimeistä riviä mitenkään esille. Olen kahlannut monet tutorialit läpi, tuloksetta. Mikä neuvoksi?
Onko PHP:ssä edes mitään komentoa, jolla saan arrayn viimeistä täytettyä arvoa hyödyntäen loopin pysähtymään tietyssä pisteessä?
Mikä neuvoksi?
Vastaukset 4
Vanhimmat
*Yritän tehdä aivan yksinkertaista scriptiä, joka kerää ensin tiedostosta jokaisen rivin yhteen arrayhyn. Tämä onnistuu kohtuullisen helposti fgets($string, 1024):llä while-loopin sisällä (mahtaako tuohon olla parempaa tapaa?).*
On ja ei, kunhan tietäisi mitä olet tekemässä ja miksi rivit on saatava arrayhyn?
$x = file('y.txt'); // tekee saman kuin edellinen koodisi.
*Huomasin kuitenkin tehdessäni uuden loopin, etten saa tiedoston viimeistä riviä mitenkään esille. Olen kahlannut monet tutorialit läpi, tuloksetta. Mikä neuvoksi?*
Lasket tiedostojen rivimäärän ja tulostat sen mukaan http://fi2.php.net/manual/fi/function.count.php ja http://fi2.php.net/manual/fi/control-structures.while.php
Tai sitten vain http://fi2.php.net/manual/fi/control-structures.foreach.php
*Onko PHP:ssä edes mitään komentoa, jolla saan arrayn viimeistä täytettyä arvoa hyödyntäen loopin pysähtymään tietyssä pisteessä?*
On break;
Jos tarkoituksesi on vain tulostaa tiedoston pelkästään tiedoston sisältö, niin se kannattaa tehdä toisella taval, vaikkapa http://fi2.php.net/manual/fi/function.file-get-contents.php
*Yritän tehdä aivan yksinkertaista scriptiä, joka kerää ensin tiedostosta jokaisen rivin yhteen arrayhyn. Tämä onnistuu kohtuullisen helposti fgets($string, 1024):llä while-loopin sisällä (mahtaako tuohon olla parempaa tapaa?).*
On ja ei, kunhan tietäisi mitä olet tekemässä ja miksi rivit on saatava arrayhyn?
$x = file('y.txt'); // tekee saman kuin edellinen koodisi.
*Huomasin kuitenkin tehdessäni uuden loopin, etten saa tiedoston viimeistä riviä mitenkään esille. Olen kahlannut monet tutorialit läpi, tuloksetta. Mikä neuvoksi?*
Lasket tiedostojen rivimäärän ja tulostat sen mukaan http://fi2.php.net/manual/fi/function.count.php ja http://fi2.php.net/manual/fi/control-structures.while.php
Tai sitten vain http://fi2.php.net/manual/fi/control-structures.foreach.php
*Onko PHP:ssä edes mitään komentoa, jolla saan arrayn viimeistä täytettyä arvoa hyödyntäen loopin pysähtymään tietyssä pisteessä?*
On break;
Jos tarkoituksesi on vain tulostaa tiedoston pelkästään tiedoston sisältö, niin se kannattaa tehdä toisella taval, vaikkapa http://fi2.php.net/manual/fi/function.file-get-contents.php
*On ja ei, kunhan tietäisi mitä olet tekemässä ja miksi rivit on saatava arrayhyn?*
Tein perlillä ohjelman, joka kerää yhteen tiedostoon, viidelle riville kerralla formilla syötetyt tiedot, appendaten tiedostoa joka kerralla. Eli siis kyseessä on tiedosto, jossa lopullinen rivimäärä vaihtelee.
Olisin voinut tehdä perlilläkin kyseisen lukijan, joka tulostaa html:t ja niiden sisään tiedostosta halutut arvot, mutta kyseinen sivu käyttää tätä tiedosto.cgi# osoitusta, jolla voi hyppiä pitkin sivua oman tahtonsa mukaan, mutta kävi ilmi ettei explorer tue kyseistä toimintoa, mikäli kyseessä on jokin muu pääte kun .html. (yritin etsiä tutorialia tähän, myöskin tuloksetta.
Päätin sitten kokeilla, josko explorer tukisi php:ta paremmin, vain huomatakseni että tiedostojen manipulointi on siinä täysin erilaista :).
Eli periaatteessa scriptin pitäisi olla hyvin yksinkertainen.. tyyliin looppi, joka tulostaa yhden :n sisään joka kolmannen rivin sekä viidennen rivin, mutta kuitenkin niin ettei kyseisiä rivejä tule siihen kuin yksi.
Kahlaan läpi antamasi linkit, josko niistä löytyisi tarvittavat tiedot :). Kiitos.
Tässä on sulle nopeesti tehty esimerkki, tosin pienellä miettimisellä olis voinut tehdä paremminkin.
¨
Toi pysäyttää loopin 10 rivin jälkeen. Tiedostossa eka rivi on tyhjä, jotta noi jakojäänökset menee oikein.