Autor | Zpráva | ||
---|---|---|---|
sloncz Profil |
#1 · Zasláno: 2. 2. 2014, 21:10:12
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 |
#2 · Zasláno: 3. 2. 2014, 09:48:52
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 |
#3 · Zasláno: 3. 2. 2014, 15:54:43
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]; |
||
Časová prodleva: 11 let
|
0