mit PHP "<br>" in "\n" konvertieren

  • #1
M

Michael_B

Bekanntes Mitglied
Themenersteller
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
Hallöchen.

Habe mal wieder ein kleines Problem mit PHP. Ich möchte Texte, die aus der Datenbank kommen geringfügig verändern. In den Texten kommen &lt;br>'s vor (die auch schon so in der DB gespeichert sind). Diese Texte möchte ich nun in eine Textarea einfügen, aber so, dass die &lt;br>'s nicht erscheinen, sondern dafür ein \n (also einen ganz normalen Zeilenumbruch) verwendet wird.

Ich habe es bereits mit str_replace(&lt;br>,\n,$text) versucht, aber dann verhunzt es mir den kompletten Text.

Kennt da jemand eine bessere Möglichkeit, das zu realisieren?
 
  • #2
GANZ EINFACH! ;)

Es gibt bereits dafür eine Funktion in php.

Zuerst wie du es am besten machen solltest:

nl2br()

mach einfach folgendes:
Speicher in die DB das Textfeld, ganz normal, mit normalen Zeilenumbrüchen. Wenn du dann diesen Text wieder als html einfügen willst einfach vorher in eine variable speichern und dann
$meinevariable = nl2br($meinevariable);

Wennn du unbedingt die br's in der DB behalten willst, dann wüsste ich jetzt auch nicht genau wie das gehen sollte, würde es dann auch mit replace machen.
Leider gibt es nähmlich keine Funktion, die das Rückwarts macht.

Gruß,
Eike Thies


Ich muss mich mal anmelden... ;)
 
  • #3
Das hatte ich auch schon überlegt. Ist nur dumm, dass die DB bereits besteht und möglichst auch so bestehen bleiben sollte. Muss mal meinen Cheffe fragen, ob ich da wat ändern darf.

Mir fällt aber gerade was zu meiner Strategie mit str_replace(&lt;br>,\n,$text) ein. Vielleicht sollte ich es mal mit \\n versuchen, also str_replace(&lt;br>,\\n,$text)

Muss ich morgen mal ausprobieren. Vielleicht liegt da ja der Hund begraben... Trotzdem danke schonmal für deine Hilfe.
 
  • #4
Hi

Deine letzte Idee dürfte nicht funktionieren.
Liegt es vielleicht daran, dass in der DB &lt;br> gross geschrieben ist?
str_replace kann das glaube nicht ignorieren.
dann müsstest du preg_replace() nehmen.

Gruß, Michael
 
  • #5
Also das &lt;br> ist nicht groß geschrieben.
Habe es auch schon mit der preg_replace versucht, aber - wie du wohl bereits von mir wissen müsstest - stelle ich mich in diesem Thema etwas blöd an.
Habe folgendes ausprobiert:

Als Beispiel-Text habe ich diesen genommen:
Wir suchen eine/n Konstrukteur/in für die Entwicklung elektromechanischer Laborgeräte. Ihre Aufgaben umfassen selbständiges Umsetzen von Konzeptideen und CAD gestützte Konstruktion.&lt;br>
&lt;br>
Sie haben Erfahrung mit 3D-CAD Systemen und langjährige Konstruktionserfahrung in der Feinwerktechnik. Voraussetzung für diese Position ist ein Abschluss an der FH oder TU als Dipl. Ingenieur Maschinenbau.&lt;br>
&lt;br>
Für diese Position sind gute Englischkenntnisse von Vorteil.


Aussehen soll der Text am Ende so:
Wir suchen eine/n Konstrukteur/in für die Entwicklung elektromechanischer Laborgeräte. Ihre Aufgaben umfassen selbständiges Umsetzen von Konzeptideen und CAD gestützte Konstruktion.

Sie haben Erfahrung mit 3D-CAD Systemen und langjährige Konstruktionserfahrung in der Feinwerktechnik. Voraussetzung für diese Position ist ein Abschluss an der FH oder TU als Dipl. Ingenieur Maschinenbau.

Für diese Position sind gute Englischkenntnisse von Vorteil.


preg_replace(&lt;br>,\n,$text) lieferte mir dann aber das hier:
Wir suchen eine/n Konstrukteur/in für die Entwicklung elektromechanischer Laborgeräte. Ihre Aufgaben umfassen selbständiges Umsetzen von Konzeptideen und CAD gestützte Konstruktion.&lt;
>
&lt;
>
Sie haben Erfahrung mit 3D-CAD Systemen und langjährige Konstruktionserfahrung in der Feinwerktechnik. Voraussetzung für diese Position ist ein Abschluss an der FH oder TU als Dipl. Ingenieur Maschinenbau.&lt;
>
&lt;
>
Für diese Position sind gute Englischkenntnisse von Vorteil.


preg_replace(/&lt;br>/,\n,$text) kam der Sache schon etwas näher:
Wir suchen eine/n Konstrukteur/in für die Entwicklung elektromechanischer Laborgeräte. Ihre Aufgaben umfassen selbständiges Umsetzen von Konzeptideen und CAD gestützte Konstruktion.



Sie haben Erfahrung mit 3D-CAD Systemen und langjährige Konstruktionserfahrung in der Feinwerktechnik. Voraussetzung für diese Position ist ein Abschluss an der FH oder TU als Dipl. Ingenieur Maschinenbau.



Für diese Position sind gute Englischkenntnisse von Vorteil.


Aber das sind leider zu viele Zeilenumbrüche!! Habe auch überlegt, ob es an fehlenden Flags liegt, aber bei selfphp in der Funktionsübersicht waren Flags (zumindest als Übergabeparameter an die Funktion preg_replace nicht vorgesehen.
Wahrscheinlich ist es nur ein kleiner Furzfehler... Aber was daran denn jetzt falsch ist würde mich schon interessieren.
 
  • #6
$text = ereg_replace(\n,,$text);
echo ereg_replace(&lt;br>,\n,$text);
 
  • #7
Hi

Die Daten in deiner Datenbank enthalten sowohl die <br> als auch die Zeilenumbrüche, sollte jedes <br> immer in einer neuen Zeile stehen. Andernfalls wären deine Daten inkonsistent und man könnte keine generelle Regel erstellen.

du musst dann das <br> durch nichts ersetzen, wie JanaS geschrieben hat.

in PCRE wäre das dann preg_replace(|\<br.*?\>|i, , $text) wenn man davon ausgeht das auch <br /> als xhtml konform vorkommen kann.

Gruß, Michael
 
  • #8
hallo,

also wie kann ich task scheduler anweisen firefox im hintergrund laufen zu lassen?! weil habe imacros plugin installiert und der task scheduler startet firefox und den macro aber leider immer im vordergrund was mich so langsam nervt weil der zeitintervall auf jede halbe stunde gesetzt ist.

also gibt es eine funktion den browser im hintergrund laufen zu alssen? bzw. er kann ja von mir aus den browser öffnen und starten wie jetzt nur wenn ich was schreibe (e-mail, im forum, oder ich lese eine internet seite und habe um die 20 tabs offen) will ich auf der seite bleiben und nicht das der task scheduler ein neues fenster aufmacht und ich dann wieder durchsuchen muss wo ich letztens stehen geblieben bin...
 
Thema:

mit PHP "<br>" in "\n" konvertieren

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben