Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedoston tulostus väärinpäin

Pallo [28.01.2008 22:33:40]

#

Yksinkertainen ongelma, pitäisi saada tulostettua .txt tiedosto sivulle niin, että
tulostetaan ensin viimeinen rivi, ja sitten kohti ensimmäistä riviä. (Luetaan tiedosto väärinpäin.)

Kuinka tämä onnistuisi mahdollisimman helposti? ;D

Eli:

**tiedosto.txt**

<b>JEEEE</b>
<b>JEEEE</b>
<b>pallo</b>


Ja sivulle tiedosto tulostetaan näin:


pallo
JEEEE
JEEEE

TsaTsaTsaa [28.01.2008 22:39:48]

#

<?php
$filu = file("tiedosto.txt");
$riveja = count($filu);

for ($i = riveja-1 ; $i >= 0 ; --$i)
{
  echo $filu[$i];
}
?>

Olga [28.01.2008 23:42:12]

#

Tai hatusta vedettynä pakollinen oneliner:

<?php print implode("", array_reverse(file("tiedosto.txt")));?>

Antti Laaksonen [29.01.2008 00:05:52]

#

Tässä on vielä yksi outo toteutus:

<?php

function rivit($tied) {
    if (feof($tied)) return;
    $rivi = fgets($tied);
    rivit($tied);
    echo $rivi;
}

rivit(fopen("rivit.txt", "r"));

?>

tsuriga [29.01.2008 02:01:06]

#

PHP6 one-liner:

<?php
foreach( new ReverseTextIterator( file_get_contents( 'file.txt' ), TextIterator::LINE ) as $line ) echo $line;
?>

Eipä ole kukaan huomauttanut, että tuollahan pitää olla viimeisellä rivillä mitä tahansa versiota käyttäessä vielä rivinvaihto :).

jlaire [29.01.2008 09:24:06]

#

Muistaakseni tästä oli joskus Perl golf -kilpailu, ja voittaja näytti tältä:

perl -pe '$\=$_.$\}{'

Lukee STDIN:stä.

Vastaus

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

Tietoa sivustosta