Elikkä mulle tuli tällainen pieni ongelma tiedoston lukemisen kanssa. Tiedostossa kaikki_paikat on rivit:
01:Testi varaus
08:Toinen testi
12:Kolmas testi
Tarkoitus olisi lukea jokaisen rivin alusta 2 ensimmäistä merkkiä (01, 02 ja 12) Löysin täältä Ohjelmointiputkasta PHP oppaasta seuraavan tekstin:
"Funktio fgets lukee seuraavan rivin tiedostosta. Funktion toinen parametri on rivin maksimipituus."
Ja koodi siinä alla on tällainen:
<?php $rivi = fgets($tt, 1024); ?>
Itse ainakin kuvittelen, että tuo 1024 on maksimi pituus, mitä $rivi muuttujaan kirjoitetaan. Saatan tietenkin olla väärässä ja todennäköisesti olenkin, koska tätä viestiä tänne kirjoitan. eli mun koodi näyttää tältä:
<?php //avataan tiedosto lukutilassa $tt2 = fopen("kaikki_paikat.txt", "r"); //nollataan rivinumerolaskuri $i = 0; //luetaan rivejä, kunnes tiedosto loppuu while (!feof($tt2)) { //luetaan seuraava rivi muuttujaan //HUOM! paikkojen tulee olla [02:varaajan nimi] merkkisessä muodossa. esim 01:Testi Varaus jne. LUODAAN AUTOMAATTISESTI $varatut[$i] = fgets($tt2, 2); echo $varatut[$i]; $i++; } fclose($tt2); ?>
Sivulle tulostuu:
01:Testi varaus 08:Toinen testi 12:Kolmas testi
Tietääkö joku, mikä on vikana, miksi sivulle tulostuu koko tiedostossa oleva rivi, eikä pelkästään tuo numero. Tai tietääkö joku, miten saisin tehtyä tuon eri tavalla?
Ei tuolla manuaalissa kyllä mielestäni lue että pointteri siirtyy seuraavalle riville sen jälkeen kun ne kaks merkkiä on luettu :S
$rivit = file("kaikki_paikat.txt"); // Tämä siis lukee koko tiedoston taulukkoon, niin että eka rivi on $rivit[0] jne.. $rivimaara = count($bannerit); for ($i = 0 ; $i < $rivimaara ; ++$i) { $rivi = explode(':', $rivit[$i]); // Ensimmäisellä kierroksella $rivi[0] = "01" ja $rivi[1] = "Testi varaus" echo $rivi[0]; }
jaa... arvelinki et oon ymmärtäny jotain väärin :D
kitti teille. Sain toimimaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.