FPDF Text aus Array kein Zeilenumbruch

aherzog

Erfahrenes Mitglied
Hallo miteinander.

Ich erzeige ein PDF aus div. Auftrags-Daten.
Diese kommen alle aus einem Array.
In einem Array-Element habe ich einen Text der mit \n den Zeilenumbruch erzwingt.

Wenn ich nun dieses Array-Element ausgeben möchte funktioniert der Zeilenumbruch nicht.

Beispiel.
HTML:
$array[test][text] = Das ist ein Beispieltext der\numbrochen werden soll

Das funktioniert:
HTML:
$ppl = "Das ist ein Beispieltext der\numbrochen werden soll";
$pdf->MultiCell( 120, 5,$ppl, '0', 'L', 0);

Ausgabe:
Das ist ein Beispieltext der
umbrochen werden soll

Das funktioniert nicht
HTML:
$ppl = $array[test][text];
$pdf->MultiCell( 120, 5,$ppl, '0', 'L', 0);

Ausgabe:
Das ist ein Beispieltext der\numbrochen werden soll

Ich habe bei der Internetsuche gelesen das der Text in doppelten Anführungszeichen stehen muss. Was ja beim Array nicht der Fall ist.
Weiss jemand wie ich den Text aus dem Array umbrochen bekomme?

Gruss Andreas
 
Hiho,

du kannst mit MultiCell nur Strings als Text nutzen,
dass heißt du musst den Array erst in ein String umwandeln.
Dies machst du mit serialize und rückgängig mit unserialize.

Weitere Informationen:
serialize

Hier der Code:
PHP:
$ppl = serialize($array[test][text]);					// array in string umwandeln
$pdf->MultiCell( 120, 5,$ppl, '0', 'L', 0);				// MultiCell kann Text nur im String nutzen

Hoffe es hilft Dir weiter.

Sonnige Grüßle
 
Wenn sich die Angelegenheit geklärt hat, bitte das Thema als Erledigt makieren.

Sonnige Grüße
 
Hallo cille.

Das funktioniert leider nicht.
Der Text der mir nun ausgegeben wird sieht so aus:

s:79:"1G IN 10 ML MEOH! nicht einatmen, reizt
Atmungsorgane,\nverursacht Hustenreiz !";

Am Anfang steht da etwas von s:xx, der Text ist auch sichtbar in Anführungszeichen.
Das \n ist noch zu sehen und der Umbruch wird leider auch nicht durchgefährt.

Nachtrag: 09:50 Uhr
Habe nahträglich versucht vorne das s:79" und hinten das "; zu entfernen, mit der Hoffnung das es danach richtig angezeigt wird, leider vergebens.
 
Zuletzt bearbeitet:
Code:
$array[test][text] = Das ist ein Beispieltext der\numbrochen werden soll
Setzt du den Text mit ' oder mit "
PHP:
//Zeilenumbruch \n wird geparst und als Zeilenumbruch mitgenommen:
$array['test']['text'] = "Das ist ein Beispieltext der\numbrochen werden soll";
//Zeilenumbruch \n wird nicht geparst und als Text mitgenommen:
$array['test']['text'] = 'Das ist ein Beispieltext der\numbrochen werden soll';

Hab da mal rasch eine Funktion geschrieben, die ich auch gleich in mein Wiki kopieren werde *g*
PHP:
//Testtext. Das \n wird als Text intepretiert (Single Quoted String)
$array['test']['text'] = 'Das ist ein Beispieltext der\numbrochen werden soll';
//Text zu Double Quoted String convertieren damit \n als Zeilenumbruch geschaltet wird
$text = convertToDoubleQuoted($array['test']['text']);
//Vergleich ausgeben
var_dump($array['test']['text'], $text);

/**
 * Konvertiert einen Single Quoted String in einen Double Quoted String
 * Zeichen wie \n etc werden somit auch als Zeilenumbruch etc intepretiert
 * @param    <String>    Single oder Double Quoted String
 * @return   <String>    Double Quoted String
 */
function convertToDoubleQuoted($string){
    $evalString = "return \"{$string}\";";
    return eval($evalString);
}
Ausgabe des var_dump()
Code:
string(51) "Das ist ein Beispieltext der\numbrochen werden soll"
string(50) "Das ist ein Beispieltext der
umbrochen werden soll"
 

Neue Beiträge

Zurück