$files=explode("\n",$files);
To ' ' musisz zmienić na "\n", ponieważ masz tekst w pliku w nowej linii, a nie w jednej linii po spacji.
Edit:
To jest zasadnicza różnica między tym:
serverlog.txt
serverlog2.txt
, a tym:
serverlog.txt serverlog2.txt
. W ramach ciekawostki. Dlaczego "\n" musi być w cudzysłowiu doczytasz w tym poradniku oraz na wikipedii.
http://www.asciitable.com/
Gdy już spojrzysz na tabelę ASCII to zobaczysz, że "koniec linii" (Line Feed) ma takie kodowanie:
Przepraszam za tę pustą tabelę poniżej, ale nie wiem jak ją usunąć.
Dec |
Hex |
Oct |
Bin |
Char |
Description |
10 |
0A |
012 |
1010 |
LF |
(NL line feed, new line) |
Teraz więc znając poszczególne kodowanie w systemach liczbowych możesz napisać tak jak w przykładach poniżej:
$files=explode(chr(10),$files);
$files=explode(hex2bin("0A"),$files);
$files=explode(chr(octdec("012")),$files);
$files=explode(chr((int)bindec("1010")),$files);
Pamiętaj, że jak dasz nieparzystą ilość znaków do funkcji hex2bin, e.g. hex2bin("A"), to wyrzuci taki błąd:
Warning: hex2bin(): Hexadecimal input string must have an even length in ...
Musi, więc być tak: hex2bin("0A"), mimo iż samo "A" jest poprawnym formatem kodowania w Hex, bo:
A=10 i 0A=10 .
Sprawdzanie znaków sterujących:
http://php.net/manual/en/function.ctype-cntrl.php
Inne:
http://php.net/manual/en/function.nl2br.php