Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedoston viimeinen rivi

Sivun loppuun

kotsku [07.02.2007 10:32:32]

#

terve!!!
mitenkäs sais php:llä luettua tekstitiedoston viimeisen rivin tietoja??
tiedot tekstitiedostoss on seuraavanlaisesti:
2007.02:07,09:42:42, 1,-36.32
2007.02:07,09:42:52, 1,-36.32
2007.02:07,09:43:02, 1,-36.28
2007.02:07,09:43:13, 1,-36.22
2007.02:07,09:43:23, 1,-36.16
2007.02:07,09:43:33, 1,-36.14

nuista pitäis saada luettua niin että
se tulostais:
07.02.2007 09:43:33
Lämpötila -36,14 C

GoldenDragon [07.02.2007 10:44:06]

#

Eli pitäisi saada AINA viimeisen rivin tiedot tulostettua?
sehän onnistuu helposti:

<?php
$filu = file("tiedosto.txt");
$last_row = (count($filu) - 1);
echo $filu[$last_row];
?>

kotsku [07.02.2007 11:03:13]

#

Kiitokset GoldenDragon!!!
toi auttoi jo tosi paljon
mut viittisittekö viel auttaa tyhmää et miten saan ku toi GoldenDragonin koodi näyttää rivin seuraavasti:
2007.02:07,09:43:33, 1,-36.14

näkymään näin:
07.02.2007 09:43:33
Lämpötila -36,14 C

Ravver [07.02.2007 11:29:14]

#

Nopeasti tehty, eikä testattu, mutta virheiden sattuessa pystyt varmasti soveltamaan esimerkistäni:

<?php
$rivi = "2007.02:07,09:43:33, 1,-36.14";
$kaikki = explode(",",$rivi);
echo $kaikki[0]." ".$kaikki[1]."<br>Lämpötila: ".$kaikki[3]." C";
?>

Sinun tapauksessasi, jos siis haluat tehdä seuraavan viimeiselle riville muutat vain vähän koodin alkua:

<?php
$filu = file("tiedosto.txt");
$last_row = (count($filu) - 1);
$rivi = $filu[$last_row];

$kaikki = explode(",",$rivi);
echo $kaikki[0]." ".$kaikki[1]."<br>Lämpötila: ".$kaikki[3]." C";
?>

Antti Laaksonen [07.02.2007 11:31:47]

#

Koodi menee suunnilleen näin:

<?php
$vika = "2007.02:07,09:43:33, 1,-36.14";

$osat = explode(",", $vika);
$paiva = substr($osat[0], 8, 2) . "." .
         substr($osat[0], 5, 2) . "." .
         substr($osat[0], 0, 4);
$aika = $osat[1];
$lampo = $osat[3];

echo "$paiva $aika<br>Lämpötila $lampo C";
?>

Tässä muuttujassa $vika on tiedostosta luettu viimeinen rivi. Funktio explode jakaa merkkijonoon osiin tietyn merkin kohdalta, ja funktio substr erottaa osan merkkijonosta.

GoldenDragon [07.02.2007 11:34:17]

#

Tässä vielä minun koodi:

<?php
$filu = file("filu.txt");
$last_row = (count($filu) - 1);
$paloittelu = explode(',', $filu[$last_row]);
for($i = 0; $i <= 3; $i++){
	if($i == 3){
		echo "<br />Lämpötila " . $paloittelu[$i];
	}
	else{
		echo $paloittelu[$i];
	}
}
?>

Ravver [07.02.2007 11:40:37]

#

Nyt on kyllä mistä valita =)

pistemies [07.02.2007 11:50:27]

#

GoldenDragon kirjoitti:

Eli pitäisi saada AINA viimeisen rivin tiedot tulostettua?
sehän onnistuu helposti:

<?php
$filu = file("tiedosto.txt");
$last_row = (count($filu) - 1);
echo $filu[$last_row];
?>

Tähän käy tietysti myös normaalit sitä varten tehdyt array-funktiot:

<?php
$sport = file("sport.txt");
echo end($sport);
?>

Ravver [07.02.2007 14:13:18]

#

Tosiaan huomasin vasta nyt, että päivämäärääkin piti käsitellä. Minun koodini ei siis tee aivan kaikkea, mitä halusit, tosin harjoitteluhan kannattaa.


Sivun alkuun

Vastaus

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

Tietoa sivustosta