Leider kommt nichts dabei raus.
Au man, nichst für ungut also noch mal.
Soweit ich das verstehe liest du die Datei (byteweise) ein und bekommst einen String, den du in achterblocks unterteils (bei meiner Probe-Textdatei "Das ist ", "die Test-"...) diese versucht du jetzt als Binär zu interpretieren und als Dezimalzahl auszugeben...
$code = file("datei");
Dies liest die ganze Datei ein und speichert jede 1 und jede 0 und die Endekennung deines Textdokument in die Variable code[0].
Die Unterteilung davon in Bytes erfolgt danach mit
$array1 = str_split($code[0],8);
Hier wird ein array erzeugt das für jedes achte Zeichen einen neuen key erhält.
z.B.:
Inhalt der Textdatein: 00100100010010111101010110101011 ...
So würde das Array folgendermaßen aussehen:
array1
(
[0] => "00100100"
[1] => "01001011"
[2] => "11010101"
[3] => "10101011"
[4} => "..."
)
Vielleicht noch einmal das Ziel etwas genauer:
Eine beliebige Datei, also ein Textdatei, ein Bild oder eine Exe soll bit für bit eingelesen werden (ich erwarte also einen String der etwa so aussieht: 01001101110...)
Es ist zwar kein string sondern ein array aber dies is für die folgende Funktion nnützlicher, denn jetzt musst du nur eine einfache foreach Schleife schreiben um jedes Byte ein mal anzufassen.
Ich kann eine Datei Byte für Byte einlesen (z.B. Buchstabe für Buchstabe) Was mir fehlt ist eine Funktion, die daraus dann die Bitfolge macht z.B.
a => 00100110
siehe das Array!
vielleicht muss ich eine ASCII-Tabelle abtippen? aber dann komme ich doch z.B. bei Bilddateien nicht weiter?
und die Ascii-Tabelle musst du nicht aptippten es gibt nur keine Umwandlung vom typ binär to ascii, aber decimal to ascii und ebenfalls existiert ein funktion binär to decimal.
Also schlussfolgerung daraus wenn ich meinen string aus einem Speicherfeld des Arrays (ein Byte) umwandeln möchte muss ich den Wert erst in decimal zahlen system umrechnen (bindec()) und dann kann ich ihn per chr() in das Ascii format umwandeln.
So mit ergeibt sich pro Arrayfeld folgende Formatierung:
echo chr(bindec($array1[0]));
echo chr(bindec($array1[1]));
echo chr(bindec($array1[2]));
echo chr(bindec($array1[3]));
echo chr(bindec($array1[...]));
Dies geht dann aber in der foreach-Schleife intiligenter:
foreach($array1 as $value)
{
echo chr(bindec($value));
echo " ";
}
mfg Robert