AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Alternativ zu nl2br

Ein Thema von CalganX · begonnen am 27. Jul 2004 · letzter Beitrag vom 28. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

[PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 20:32
Hi,
ich bin gerade dabei ein neues CMS zu schreiben. Auf PHP-Basis. Funktioniert soweit super. Nur ist mir jetzt folgendes aufgefallen.
Eine Seite sieht z.B. so aus:
Code:
[[Designing the Future!]]
[CSD-Software :: Designing the Future]

// PAGECONTENT //
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
   <tr>
      <td width="10%" align="center" valign="top">
         Hier steht ein wenig Text...
         Und noch mehr in einer zweiten Zeile
      </td>
      <td width="40%" valign="top">
         Hier steht ein wenig Text...
         Und noch mehr in einer zweiten Zeile
      </td>
   </tr>

</table>
// EOF //
Damit die Zeilenumbrüche korrekt erstellt werden jage ich beim Darstellen noch einmal ein
Code:
$line = nl2br($line);
drüber.
Funktioniert theoretisch auch wunderbar. Praktisch gibt es jedoch ein paar Probleme: dadurch dass der Code für die Tabellen schön formatiert ist, wird hinter jede Zeile ein
gesetzt. Und deswegen sieht das ganze am Ende ungefähr so aus:
Code:
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">


   <tr>


      <td width="10%" align="center" valign="top">


         Hier steht ein wenig Text...


         Und noch mehr in einer zweiten Zeile


      </td>


      <td width="40%" valign="top">


         Hier steht ein wenig Text...


         Und noch mehr in einer zweiten Zeile


      </td>


   </tr>


</table>
Wodurch die Tabelle einige Zeilen nach unten rückt, weil Zeilenumbrüche innerhalb einer Tabelle (also da, wo kein Text sein sollte) nicht wirklich korrekt sind.

Jetzt ist meine Frage, ob es eine Alternativ zu nl2br(); gibt, oder ob ich jetzt für die Tabelle irgendeine Alternative finden muss.

Chris
  Mit Zitat antworten Zitat
Benutzerbild von titus
titus

Registriert seit: 5. Apr 2004
Ort: Freiburg
232 Beiträge
 
#2

Re: [PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 20:53
Ich verstehe das Problem nicht wirklich eine 100 prozentige Alternatvie wäre str_replace("\r\n", '
', $text);

Vielleicht meinst du trim()?

mfG, titus
Daniel L.
'-'
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: [PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 20:58
Hi,
nein... Das Problem ist, dass PHP mit nl2br(); auch hinter HTML-Dinge wie
Code:
<table>
ein
setzt. Und das ist halt ... nunja... nicht korrekt und das Ergebnis sieht auch recht bescheiden aus.

Mit "Alternative" meinte ich, ob nicht irgendwer eine hardgecodete Funktion kennt/hütet (o.ä.), die eben das umgeht.

Chris
  Mit Zitat antworten Zitat
ichhabefertig

Registriert seit: 8. Jul 2003
51 Beiträge
 
#4

Re: [PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 20:59
Hallo,

in Teilen, die lediglich HTMl Tags enthalten, benutzt Du natürlich kein nl2br(), sondern hängst einfach ein \n an das Zeilenende, wenn Du den Code unbedingt formatiert haben willst. Nur bei Text, der Umbrüche enthält, benutzt Du nl2br();.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: [PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 21:06
Hi,
hö? Ein einfaches Anhängen wird es aber nicht sein, weil ja trotzdem ein Zeilenumbruch da sein muss, wo der Text steht. Das sollen ja zwei Zeilen sein.

Chris
  Mit Zitat antworten Zitat
Benutzerbild von titus
titus

Registriert seit: 5. Apr 2004
Ort: Freiburg
232 Beiträge
 
#6

Re: [PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 21:11
naja vielleicht ein möglichkeit:
du machst um den text, der umgebrochen werden soll sowas:
<nl2br>text
text
test</nl2br>

und dann einfach:
$text = preg_replace('#<nl2br>(.*?)</nl2br>#ie', 'nl2br(\'\\1\');');

ansonsten ist das nur schwer möglich (man muss halt kennzeichen, wo der text umgebrochen werden soll und wo nicht.)

Aber ich meine, wenn der User schon alleine seine Tabellen machen muss, dann sollte er auch alleine seine
machen


mfG, titus
Daniel L.
'-'
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: [PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 21:22
Hi,
hm... einfacher fände ich den genau umgekehrten Fall. Alles, wo kein Umbruch sein soll, wird mit [no2br] oder umschlossen. Kennst du dafür irgendwas?
Ich würde mir ja selber einen regulären Ausdruck schreiben, nur habe ich ich davon so viel Ahnung, wie eine Kuh vom Coden.

Chris
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#8

Re: [PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 21:52
In dem Fall wäre der umzubrechende Code ja mit "[/no2br]" und "[no2br]" umschlossen:
Code:
[no2br]<html>
  <und mehr>[/no2br]
    Blah
    blubb
  [no2br]</und mehr>
</hmtl>[/no2br]
Also sieht der Ausdruck genauso aus, nur andersrum
Code:
$newtext = preg_replace('#\[\/no2br\](.*?)\[no2br\]#ie', 'nl2br(\\1);');
Ich bin mir grad' nicht sicher, ob der Forward Slash in PCRE auch escaped werden muss und auch nicht ob es bei einem der Zeichen n, o, 2, b und r der Fall ist, ist alles so lange her...
  Mit Zitat antworten Zitat
Benutzerbild von titus
titus

Registriert seit: 5. Apr 2004
Ort: Freiburg
232 Beiträge
 
#9

Re: [PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 22:04
Ne so geht das nicht.
Man müsste den Ausdruck irgendwie mit ^ umdrehen, aber es klappt bei mir einfach nicht

ich probier mal weiter
Daniel L.
'-'
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#10

Re: [PHP] Alternativ zu nl2br

  Alt 27. Jul 2004, 22:30
Wieso geht das nicht?
Mit ^ findest du Dinge, die das gesuchte nicht enthalten, damit kann man keinen Blumentopf gewinnen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz