Seite 1 von 1

string mit Zeilenumbruch

Verfasst: 14.01.2004 14:50
von Ulf
Hallo,
ich habe ein Textfeld (textarea) und beim betätigen des Submitbuttons wird der Inhalt des Feldes in die DB geschrieben. PHPMyAdmin zeigt mit den Inhalt auch korrekt an, also wenn ich zum Beispiel 4x ein Enter (Zeilenumbruch) eingegeben habe, dann erscheint das auch in der DB.
Wenn ich die Variable allerdings aus der DB auslese und ausgebe, erscheint nur der Text ohne Zeilenumbrüche!

Hier mal ein Beispiel:

------------------------------------
Hallo,


das ist

ein



Test
-------------------------------------

______
|Submit |


Alles was zwischen den gestrichelten Linien steht, ist die Eingabe in das Textfeld, nach Submit, speichern in DB und anschließen das Auslesen aus der Variable aus der DB sieht der Inhalt wiefolgt aus:

Hallo, das ist ein Test

Wie bekomme ich es hin, dass was ich eingegeben habe auch genauso wieder herausgegeben wird, mit allen Zeilenumbrüchen?

Verfasst: 14.01.2004 14:57
von PhilippK
Schau mal hier: [php:nl2br]

Gruß, Philipp

Verfasst: 14.01.2004 15:04
von Ulf
danke für die schnelle Antwort! Und natürlich auch danke für den Link :grin:

Verfasst: 30.04.2004 00:43
von Olli2
Ich hab so ein ähnliches Problem...

hab eine Funktion die halt ein Text wie z.B.

Code: Alles auswählen

<a href="#">Link</a>
genauso wieder gibt.
ABER...wenn ich Zeilenumbrüche mach gibt der die nicht wieder... :roll:

benutze die htmlentities( $html )

Wie bekomme ich das hin das im

Code: Alles auswählen

 Zeilenumbrüche auch angezeigt werden?

Verfasst: 30.04.2004 00:48
von PhilippK
Kannst du das Problem bitte etwas präziser beschreiben? Ich kann deinem Beitrag leider nicht so recht folgen :-?

Gruß, Philipp

Verfasst: 30.04.2004 08:22
von Olli2
Ein Beispiel:

Code: Alles auswählen

<div>Zeile 1<div>
<div>Zeile 2<div>
<div>Zeile 3<div>
Hier sind zwei Zeilenumbrüche.
Bei meinem Programm geht das leider nicht.

Siehe hier. auf meiner Seite

Möchte aber das er Zeilenumbrüche macht.
Was muss ich da machen oder berücksichtigen?

Verfasst: 30.04.2004 11:46
von Xmopf
Tausch mal die Reihenfolge der Funktionen htmlentities() und nl2br(), dann sollte es funktionieren

Code: Alles auswählen

$variable = htmlentities($html);
$ausgabe = nl2br($variable);
Gruß
Xmopf

Verfasst: 30.04.2004 13:45
von Olli2
Wunderbar...klappt...man hab ich mir da ein Kopf gemacht.
Vielen Dank. :grin:

Wen es interessiert hier die 2 Funktionen dazu (ich weiss das man auch alles in eine hätte reintun können)

Code: Alles auswählen

function htmltags( $code )
{
  // Mit diesem Code kann man HTML-Tags auch als HTML-Tag ausgeben.

  $code = ereg_replace("<table><tr><td class=\"edit\"><code><b>Code:<\/b>"  ,"\[code\]"    ,$code); 
  $code = ereg_replace("<table><tr><td class=\"edit2\"><code><b>Code:<\/b>" ,"\[code2\]"   ,$code);
  $code = ereg_replace("<\/code><\/td><\/tr><\/table>"                      ,"\[\/code\]"  ,$code); 

  $code = ereg_replace("\[code\]"   ,"<table><tr><td class=\"edit\"><code>~" ,$code); 
  $code = ereg_replace("\[code2\]"  ,"<table><tr><td class=\"edit2\"><code>~",$code); 
  $code = ereg_replace("\[\/code\]" ,"~<\/code><\/td><\/tr><\/table>"        ,$code); 

  $anz = substr_count($code, "~"); // Anzahl der "~" Zeichen
  $anz++;

  $temp = split("[~]",$code); //Hier wird durch die split() Funktion was ein Trenner hat, hier das "[~]" Zeichen, der String in ein Array verwandelt


  for($i = 0; $i < $anz; $i++)
  {
    if ($i % 2 == 0) 
      $erg .= $temp[$i];
    else
      $erg .= "<b>Code:</b>" . $break = nl2br( html($temp[$i]) );
  } 


  return $erg;

}

function html( $code )
{
  $temp = htmlentities( $code ); 
  return $temp;
}