Sponsored Links |
|
||||
Der Parameter für Binärdateien bei fopen ist ein zusätzliches "b", also z.B. fopen('datei', 'rb').
Zum Einlesen von Binärdaten kenn ich nur PHP: fread - Manual. |
Sponsored Links |
|
||||
Ich will die 0-bits durchzählen oO.
Was bringt in php denn das Einlesen als binät und nicht binär? Code:
<?php header('Content-Type: image/gif'); $path = 'hi.gif'; $read = fopen($path, 'r'); echo fread($read, filesize($path)); fclose($read); ?> fread() gibt eh nen string zurück. Wären die Argumente nach dem Ersten nicht length, sondern position und die rückgabe wäre ein pures bit, könnte ich was damit anfangen. Geändert von nick (13.07.2007 um 16:01 Uhr) Grund: Ergänzung |
|
||||
bit oder byte?
Bit dürfte relativ schwierig werden... Eine Möglichkeit: Datei komplett einlesen (file_get_contents) und anschließend jedes byte des Strings durchgehen $string{0}, $string{1}, ... , $string{..} und checken ob es ein null-byte (nicht null-bit) ist. So weit in der Theorie. Praxis bleibt dir überlassen. Gruß, Pablo |
|
||||
Indem man jeden Char-Byte aus einer Textdatei vergleicht
mit einem Byte, der auch die Zahl 0 ergeben würde, findet man nicht ALLE 0-bytes Die bitfolge 0000 0000 würde die Integer 0 ergeben, es sind auch Strings ohne das zeichen 0 drin möglich, wo irgendwo 8 0en hintereinander stehen können. // edit Etwas der Art: Code:
<?php set_timeout(0); $count = 0; $path = 'hi.gif'; $read = fopen($path, 'rb'); $size = filesize_in_bit($path); for ($a = 0; $a < $size, $a++) { if (get_bit($read, $a)) continue; $count++; } fclose($read); echo sprintf('%06d Mal false!', $count); ?> Geändert von nick (13.07.2007 um 16:33 Uhr) |
|
|||
Wie man im PHP-Manual nachlesen kann, ist das "b"-Flag dazu da, unter Systemen, die zwischen Binär- und Textdateien unterscheiden, trotzdem binäre Dateien als "Text" einzulesen. Z.B. bei Musikdateien oder Programmen. Windows unterscheidet z.B. zwischen diesen beiden Arten, Linux nicht.
Eine Bitweise Auslesung ist m.W. nicht möglich, zumindest das Manual sagt nichts darüber aus. Deine einzige Chance wäre es, ein Array zu erstellen, dass die Zeichen mit der Binärentsprechung ersetzt. Eine Möglichkeit um das zu realisieren sehe ich darin, dass du ohne weiteres mit Bits auf 255 zählen kannst, genauso viele Zeichen ein String ja hat. Konkret: PHP-Code:
Geändert von Wasili (13.07.2007 um 16:57 Uhr) |
|
|||
Zitat:
PHP-Code:
|
Sponsored Links |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
[php] Datei bit für bit einlesen. | nick | Serveradministration und serverseitige Scripte | 0 | 13.07.2007 15:36 |
[php] opendir/readdir/is_file: datei größer 2gb | britneyfreek | Serveradministration und serverseitige Scripte | 11 | 10.05.2007 20:57 |
Inhalt eines DIV-Bereiches aus externer Datei einlesen | Wolle | CSS | 5 | 21.12.2005 12:12 |
[PHP] Datei im Hauptverzeichnis speichern | lomtas | Serveradministration und serverseitige Scripte | 11 | 20.06.2005 14:42 |
[php/http] datei an client senden | Xenon | Serveradministration und serverseitige Scripte | 13 | 21.03.2005 20:54 |