Seite 1 von 1

aus <br /> nur eine(!) Leerzeile machen

Verfasst: 18.10.2006 14:40
von Gumfuzi
Ich habe einen Text in einem String, bei welchem ich gerne alle "<br />" in eine "Zeilenschaltung" umwandeln möchte. Das sollte ja mit

Code: Alles auswählen

$output = str_replace('<br />', chr(13).chr(10), $output);
zu realisieren sein.
Leider werden dann aber immer 2 leere Zeilen erstellt.

Wenn ich aber zB. "asdasd" . chr(13).chr(10). "khjkhjk" in ein Textfile am Server exportiere, dann ist da nur eine neue Zeile ohne Leerzeile (genau das, was ich mit dem obigen Code auch erreichen möchte)
Was mache ich da falsch?

Danke für eure Hilfe!

Verfasst: 18.10.2006 15:33
von cYbercOsmOnauT
Browser erkennen CR (ASCII 13) und LF (ASCII 10) als "neue Zeile". Da Du (windowsgerecht) das <br /> mit CarriageReturn-LineFeed ersetzt, werden dort dann 2 "neue Zeilen" angezeigt.

Mach mal

Code: Alles auswählen

$output = str_replace('<br />', chr(13), $output);
Liest Du das Textfile per Browser oder per Notepad? Mit Notepad sollten da keine 2 Leerzeilen entstehen. Wenn Du meinen Weg gehst, zeigen die Browser die Leerzeilen richtig an, aber Notepad erkennt keine neue Zeilen mehr. :D

Gruß,
Tekin

Verfasst: 18.10.2006 16:33
von Gumfuzi
Danke für die rasche Antwort!

Ich habe einen Konverter gemacht, der jeden KB-Artikel ausliest und den HTML-Code des Artikels in eine Textdatei (pro Artikel) schreibt, nachdem die verschiedenen HTML-Tags in Wikitags umwandelt worden sind (mit str_replace und preg_replace).

Diesen Text aus der Textdatei kopiere ich dann und fügen den per copy&paste in das bearbeiten-Feld von meinem Mediawiki ein.
Zwar kann Mediawiki die <br />-Tags richtig umwandeln, aber beim Editieren des Mediawiki-Artikels stören die dann in puncto Übersichtlichkeit. Es soll eben im fertigen Wiki-Text dann der Zeilenumsprung sein und auch im bearbeiten-Fenster des Wikis.

Habe nun mal genauer das ganze verfolgt und schon beim einfügen in das bearbeiten-Feld wird aus dem chr(13) zwei Zeilen, also noch bevor ich dann auch "Vorschau" klicke.
Hängt wahrscheinlich mit der von Dir beschriebenen Darstellungsvariante (Notepad - Browser) zusammen.

Also:
bei Deiner Variante scheint im Notepad ein nicht ganz Quadratisches Zeichen auf (kann es nicht hier einfügen, da ich dann automatisch hier beim Posten in die nächste Zeile komme, übrigends so soll es dann auch im Mediawiki-Fenster sein)
bei meiner Variante sind die zwei zeilen bereits in der txt-Datei am Server zu sehen.

Hier beim Postingeingabefester auf phbb.de wird es richtig umgeschlüsselt - beim Mediawiki nicht.

Hat das ev. etwas mit der Codierungs zu tun oder wo liegt sonst der Fehler? Hier auf phbb.de ist es "iso-8859-1" und beim Mediawiki ist es "utf-8"

Danke nochmal für Deine Hilfe!

*edit*
Habe soeben entdeckt, daß Mediawiki eine Leerzeile ignoriert, d.h. eine Leerzeile ist das <br /> und zwei Leerzeilen sind 2 Leerzeilen

Ist somit erledigt!

Verfasst: 19.10.2006 10:56
von cYbercOsmOnauT
Nachtrag: Der Rechteck wird angezeigt wenn dort ein Zeichen steht, den Notepad nicht darstellen kann.

Verfasst: 19.10.2006 11:30
von Gumfuzi
danke, gut zu wissen!

Verfasst: 19.10.2006 12:59
von Dr.Death
Nimm daher einen etwas besseren Editor: Notepad++

Findest Du bestimmt über Google ;-)

Verfasst: 19.10.2006 13:42
von Gumfuzi
Als Editor habe ich Edit Plus.

Nur die Dateien vom FTP lasse ich mir gerne von Notepad anzeigen.