Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tekstitiedoston luku alhaalta ylös

Sivun loppuun

chiqu [04.03.2005 19:04:40]

#

Niin, elikkäs pitäisi saada echotettua (/printattua) tekstitiedoston alin rivi, jonka jälkeen toiseksi alin, kolmanneksi alin jne.

Miten toteutan ?

kayttaja-2791 [04.03.2005 19:16:52]

#

<?php
foreach (array_reverse(file('tiedosto.txt')) as $a)
   print $a;
?>

Ainakin yksi vaihtoehto.

chiqu [04.03.2005 19:31:53]

#

Jeij, kiitoksia sulle. Menenkin jatkamaan sitten hommiani :)

chiqu [05.03.2005 12:00:32]

#

Noniin, nyt vielä toista kysmystä, viittiny uutta aihetta tehä, toimii tässä varmana iha hyvin, eli miten rajotan niin, että lukee vain esim 10 riviä ?
Tässä siis tämän hetkinen..

<?php
foreach (array_reverse(file('boxi.txt')) as $a){
  $jaettu = explode("|", $a);
    echo "$jaettu[0]  ";
    echo "$jaettu[1]<br>";
?>

Blaze [05.03.2005 12:13:12]

#

<?php
$filu = file('boxi.txt');
for($i = count($filu); $i > count($filu) - 10; $i--) {
  // do j00r m4gick
}
?>

kayttaja-2791 [05.03.2005 12:16:36]

#

Sisennä paremmin, kielii vähän ettet käytä kunnollista editoria. Hae vaikka Notepad2 (en halua editorisotaa, katso jotain asiaan kuuluvia threadeja), ne osaavat sisentää järkevästi useita rivejä kerralla.

Mutta itse asiaan:

<?php
foreach (array_slice(array_reverse(file('boxi.txt')), 0, 10) as $a) {
	$jaettu = explode("|", $a);
	echo $jaettu[0]."  ";
	echo $jaettu[1]."<br>";
}
?>

Array_slice siis parametrein array_slice($array, 0, 10) palauttaa taulukon jossa on alkuperäisen taulukon kymmenen ensimmäistä arvoa.

En tosin ole varma miten se käyttäytyy jos taulukossa ei ole 10:ntä arvoa, varmaan antaa vain herjan ja toimii muuten ok. Kokeile sitä, jos se herjaa jotain mutta toimii silti laita eteen merkki @.

Edit: Käytä Blazen tapaa, se on nopeampi isoilla tiedostoilla kun taulukkoa ei tarvitse kääntää. Toisaalta taas tämä versio ei pidä jatkuvasti muistissa kuin ne välttämättömät 10 arvoa heti tiedoston lukemisen jälkeen joten ehkä tämä versio käyttää vähemmän muistia...

chiqu [05.03.2005 12:22:30]

#

Käytän notepad2, mut ei se mul kyl itestää mitää sisennä :O

kayttaja-2791 [05.03.2005 12:27:53]

#

chiqu kirjoitti:

Käytän notepad2, mut ei se mul kyl itestää mitää sisennä :O

Valitse rivit ja paina tabulaattoria. Ja shift + tabulaattori palauttaa niitä taaksepäin. Tuossa sinun esimerkissä siis valitsin seuraavat rivit:

<?php
  $jaettu = explode("|", $a);
    echo $jaettu[0]."  ";
    echo $jaettu[1]."<br>";
?>

Ja painoin muutaman kerran shift + tabulator, sitten kerran tabulator. Niin saatiin ne nättiin sisennettyä. Siitä sitten vain copypastestin sen tänne Putkaan.

En nyt tiedä tiesitkö tätä jo, on kyllä ärsyttävä kirjoittaa tänne suoraan mitään kun html-textareassa ei tabulator toimi sisennykseen. Siksi yleensä vähänkään pidemmät koodit kirjoitankin editorin kautta tänne.

chiqu [05.03.2005 13:39:25]

#

Ei viitsi vieläkään tehdä uutta aihetta, vaikka tämä meneekin jo niin ohi otsikosta..

Mikä tässä on vikana ?

<?php

70:  $moi = ':)'; // Hymiö..
71:  $terve = '<img src="smile.gif">'; // .. Korvataan kuvalla
72:  $teksti = 'Jeeah. :)'; // Ja teksti
73:
74:     echo preg_replace("/$moi/", "$terve", "$teksti");


<?php

Valittaa, että:
Warning: Compilation failed: unmatched parentheses at offset 1 in (..polku..) line 74

EDIT: laitoin rivinumerot toho, jos se auttaa..

Metabolix [05.03.2005 13:48:55]

#

Valittaisikohan se siitä, että $moi sisältää sulkumerkin? Kokeile laittaa moiksi ":\)".
Ja lopussa pitäisi tietysti olla ?> eikä <?

chiqu [05.03.2005 13:54:44]

#

joo, toi loppumerkki on vaa typo ku laitoin sen tänne, ku en ajatellu koko php kökköä pastea.

Ja hyvä huomio, ton avulla sainkin toimimaan, kiitoksia :)

D.J-Dew [06.03.2005 17:09:44]

#

toi hymiöjuttu kannattais tehdä str_replacella:

<?php
 echo str_replace($moi,$terve,$teksti);
?>

Sivun alkuun

Vastaus

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

Tietoa sivustosta