franz: base64_decode funktioniert nich so ganz

hallo,

ich habe hier ein script welches sehr simpel erscheint.

ich habe eine datei test.doc
sie wird eingelesen
und codiert
und dann wieder decodiert

decodierter code müsste also wieder dem original entsprechen, tut es aber nicht, warum?
wie erreiche ich das $encode == $original der wahrheit entspricht?

<?php

$datei = "test.doc";
$file = "new.doc";

$datei_content = fread(fopen($datei,"r"),filesize($datei));

$original = $datei_content;
print "original:<br>$first";
print "<hr>";

$code = chunk_split(base64_encode($original),76,"\r \n");
print "code:<br>$code";
print "<hr>";

$encode = chunk_split(base64_decode($code),76,"\r \n");
print "encode == original:<br>$encode";

$data = fopen($file, "w");
fwrite($data, $encode);
fclose($data);
?>

  1. Halihallo franz

    decodierter code müsste also wieder dem original entsprechen, tut es aber nicht, warum?
    wie erreiche ich das $encode == $original der wahrheit entspricht?

    a) Verkette die Funktionen richtig
    b) ggf. binär einlesen und schreiben

    $code = chunk_split(base64_encode($original),76,"\r \n");
    $encode = chunk_split(base64_decode($code),76,"\r \n");

    Nicht wirklich.

    Erstens: Kodierst du zuerst mit chunk_split(base64_encode()); wäre die korrekte
    Umkehrfunktion base_decode(unchunk_split()). (BEM: Was bedeutet unchunk_split? -
    Autorenaufgabe). Überlege dir _genau_, was du kodierst und in welcher Reihenfolge, und
    überlege dir dann den inversen Weg für die Dekodierung.
    Desweiteren meinst du als Zeilendelimiter "\r \n" nicht wirklich, sondern wenn überhaupt
    dann "\r\n" (besser: "\015\012").

    Möglicherweise wäre ein open in beiden Fällen im Binärmodus empfehlenswert. Informiere
    dich über das "b" Flag des fopen-statements.

    Viele Grüsse

    Philipp

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.