piątek,
PHP: Odczyt plików binarnych
Jak odczytać i wyświetlić zawartość pliku binarnego?
Stylistyka dzisiejszego przykładu kojarzy się z konkursem Perl Golf. Nie jest to dobry przykład do nauki, można go rozpatrywać jako ciekawostkę. Oczywiście kod spełnia swoje zadanie — odczytuje plik i wyświetla go w formie podobnej do edytora heksadecymalnego.
Założenia skryptu
- możliwie mała liczba znaków
- nie są wykorzystane zewnętrzne moduły
- przy ustawionym maksymalnym poziomie raportowania błędów nie wyświetlają się żadne komunikaty
W przykładzie skrypt wyświetla swój własny kod, jednak możemy zmienić stałą __FILE__ na dowolny plik.
$l=strlen($t=file_get_contents(__FILE__));
while(@$i<$l) {
@$a.=($y=ord($x=$t{$i++}))>32 ? htmlentities($x) : '.';
@$h .= sprintf("%02x ",$y);
$i%16 && $i<$l or $a=$h=!printf("<pre>%04x %-48s %s",16*@$j++,$h,$a);
}
Ekstremalnie skrócony zapis powyższego kodu to 200 znaków.
$l=strlen($t=file_get_contents(__FILE__));while(@$i<$l){@$a.=($y=ord($x=$t{$i++}))>32?htmlentities($x):'.';@$h.=sprintf("%02x ",$y);$i%16&&$i<$l or$a=$h=!printf("<pre>%04x %-48s %s",16*@$j++,$h,$a);
Udział wzięli
strlen, file_get_contents, while, ord, htmlentities, sprintf, printf, operators, constants.predefined
Powyższa ramka to odnośniki do właściwych stron dokumentacji języka PHP.