Autor Zpráva
sloncz
Profil
Dobrý den, snažím se vytáhnout obsah souboru latest.log pomocí

$vypis = file_get_contents("ftp://jmeno:heslo@web/logs/latest.log");

to se mi daří, problém je, že bych potřeboval vypsat jen třeba 20 posledních řádků a ne vše, co se v tom souboru nachází. Je to možné? :)
Chro
Profil
Jde to. Místo file_get_contents použij funkci file, ta načte soubor do pole po řádcích. Pak si zjisti počet řádků v poli funkcí count a projdi pole v cyklu for v požadovaném počtu iterací.
janbarasek
Profil
sloncz:
Pokud máš v proměnné $vypis celý obsah souboru, tak to lze snadno parsovat. Případně si můj script lehce uprav.
<?php
$vypis = file_get_contents("ftp://jmeno:heslo@web/logs/latest.log");
$i = 0;
$parser = explode("\n", $vypis);
while(isset($parser[$i]) || $i == 20) {
  echo $parser[$i]."\n";
  $i++;
}
?>
pcmanik
Profil
sloncz:
Vačsinou chceš log čítať od najnovších vecí po najstaršie takže tomu som prispôsobil aj tento skript, inak si ho už uprav ak chceš mať normálne poradie.
$file= file('ftp://jmeno:heslo@web/logs/latest.log', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$last = 20; // pocet poslednych riadkov
$count = count($file);

// pripad ze je menej riadkov ako pozadovany pocet
if ($count <= $last) {
    $file = array_reverse($file);
    foreach($file as $row) echo $row;
}
// standartny vypis od konca
else while ($count-- && $count >= $count - $last) echo $file[$count];

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: