Zum Inhalt

Freizeilen von PHP nach Flash

Vor einiger Zeit schrieb ich ja bereits über die Tücken der Sonderzeichen und Freizeilen in Bezug auf PHP und Flash (wer der große Schuldige ist, kann ich gar nicht recht sagen). Wenn ich den Artikel lese, erhalte ich am Schluss den Eindruck, dass ich die Probleme ein für allemal gemeistert hätte. Wie ich heute morgen herausfinden musste, befand ich mich mit dieser Annahme auf der nicht-metallischen Straße oder auch dem hölzernen Pfad…
Bei einem aktuellen Projekt werden Daten in HTML-Formularfelder eingegeben, per PHP in einer MySQL-Datenbank abgelegt und später von einem Flashfrontend angefordert. Dazu führt Flash eine PHP-Datei aus, die die Daten aus der Datenbank abholt und per echo-Befehl an Flash liefert. Im Grunde dasselbe Szenario wie Anno 2005. Doch im Gegensatz zu damals spielt es im vorliegenden Fall offenbar keine Rolle, dass ich die Daten (wie damals) per PHP-Skript in die Datenbank einspeise, denn aus einem Testeintrag…

Eine Zeile frei:

Zwei Zeilen frei:

Ende.

…wird in Flash 8…

Eine Zeile frei:
Zwei Zeilen frei:

Ende.

Wo eigentlich eine Zeile frei sein sollte, werden in Flash derer zwei angezeigt. Noch größer klafft die Lücke bei zwei gewünschten Freizeilen.

Warum ich seinerzeit ohne Skript-Manipulationen weitergekommen bin, ist mir heute schleierhaft. Aber ich habe eine Lösung gefunden, die hoffentlich auch beim nächsten Projekt noch funktioniert…:

Statt die Textdaten unverändert aus der Datenbank an Flash zu übergeben mit…

$send2flash = „copy=“.utf8_encode( $row[‚copy‘] ).“&“;

…lasse ich per str_replace erst alle Vorkommen der Steuerzeichen #0D #0A oder Dezimal 13 10 — Erstgenanntes steht für Carriage Return, Letzteres für Line feed — durch ein einfaches \n ersetzen:

$transformedCopy = str_replace( „\r\n“, „\n“, $row[‚copy‘] );
$send2flash = „copy=“.utf8_encode( $transformedCopy ).“&“;

Dann klappt es. Diesmal.

Veröffentlicht inAllgemein
Loading Facebook Comments ...

Schreibe den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert