Umbrüche mit Zusatz suchen & ersetzen

Dein Ansatz ist einfach ein falscher. Möchtest du es so haben?

HTML:
<ul>
  <li>Erste Ebene</li>
  <li>Zweite Ebene - Erster Punkt</li>
  <li>Zweite Ebene - Zweiter Punkt</li>
</ul>

Poste doch einfach mal, ein von Hand erstellten HTML Code wie du es haben möchtest und was genau hier
PHP:
$text = $a;
drin steht. Glaube sonst kann dir keiner helfen...
 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
DIE LÖSUNG
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


Hallo Kalle, hallo alle andern

ich habe die Rätsels Lösung. Die sieht wie folgt aus:

PHP:
function bbcodeumwandeln($a)
{
	$text = nl2br($a);
	$text = eregi_replace('\[ul\]','<ul><li>',$text);
	$text = eregi_replace('\[/ul\]','</li></ul>',$text);
	$text = eregi_replace('\[li\]','<ul style="margin-left:100px;"><li>',$text);
	$text = eregi_replace('\[/li\]','</li></ul>',$text);
	$text = eregi_replace ('\</ul><br /\>',"</ul>",$text);
	$text = eregi_replace('\</li><br /\>','</li></ul>',$text);

	return $text;
}

Ich versuche es jetze noch zu erklären und auch auf die Frage von Kalle antwort zu geben:

In der ersten Zeile des Skriptes gebe ich der Variable $text den Wert aus der Datenbank mittels $a; und zwar direkt umgewandelt. Somit habe ich von Anfang an die Zeilenumbrüche enthalten. Danach wandle ich mal die Angaben aus der eckigen- Klammer aus (Zeile 2 - 5) damit ich die [ul]'s und so weiter in die üblichen HTML- Tags umgewandelt werden (also <ul> usw.). Da die </li></ul>- Werte danach jedoch noch jeweils einen <br />- Tag haben (und den will ich ja löschen), also lösche ich den in den zwei letzen Zeilen des Skriptes.

Lange Rede kurzer Sinn: Dem Text müssen bereits zu Beginn der Umwandlung die <br>- Tags eingefügt werden, und dies geschieht am einfachsten über die nl2br()- Funktion. Ich hoffe das ist verständlich. Ansonsten, schreibt mir :)!

Gruss & herzlichen Dank für all eure Hilfe, somit ist dieser Thread erledigt
Pinky
 
Zurück