| 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: 12 let
|
|||
0