string mit Zeilenumbruch

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Ulf
Mitglied
Beiträge: 61
Registriert: 27.12.2003 14:04
Kontaktdaten:

string mit Zeilenumbruch

Beitrag 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?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Schau mal hier: [php:nl2br]

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Ulf
Mitglied
Beiträge: 61
Registriert: 27.12.2003 14:04
Kontaktdaten:

Beitrag von Ulf »

danke für die schnelle Antwort! Und natürlich auch danke für den Link :grin:
Olli2
Mitglied
Beiträge: 27
Registriert: 25.11.2002 14:40
Kontaktdaten:

Beitrag 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?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Kannst du das Problem bitte etwas präziser beschreiben? Ich kann deinem Beitrag leider nicht so recht folgen :-?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Olli2
Mitglied
Beiträge: 27
Registriert: 25.11.2002 14:40
Kontaktdaten:

Beitrag 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?
Xmopf
Mitglied
Beiträge: 85
Registriert: 17.04.2002 09:21
Wohnort: Sauerland

Beitrag 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
Olli2
Mitglied
Beiträge: 27
Registriert: 25.11.2002 14:40
Kontaktdaten:

Beitrag 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;
}
Antworten

Zurück zu „Coding & Technik“