php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.11.2005, 15:34  
Gast
 
Beiträge: n/a
Standard [Erledigt] Problem mit BBCode

Das ewige Thema: BBcode

Also mein BBcode funktioniert eigentlich schon ganz gut, leider habe ich nun ein Problem:

Ich lasse die
Tags durch eine Tabelle ersetzten mit folgender Zeile:


Code:
$kommentar = preg_replace("|\[quote\](.*)\[/quote\]|Uism",
	     "	
<table border=\"0\" width=\"80%\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"><tr><td><p class=\"links\">Zitat:</p></td></tr></table><table border=\"1\" width=\"80%\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"><tr bgcolor=\"#FF6633\"><td valign=\"top\"><p class=\"links\">$1</p></td></tr></table>
",$kommentar);
Leider tritt nun das Problem auf, wenn in einem Quote etwas zitiert wird... Also sprich:
Code:
Zitat:
blabala
Zitat:
blubbblubb
dann der text nicht mehr richtig angezeigt wird weil nur einer der quote tags ersetzt wird und nicht beide.

Kann mir einer bitte sagen woran das liegt?
Danke
goosele
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.11.2005, 15:55  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zähl doch die [quote]'s, vergleich sie mit der Anzahl der [/quotes], wenn sie gleich sind, ersetz
Zitat:
eben durch str_replace() mit deinem '<table...>'-Kruscht und
's auch durch '..</table>'-Kruscht.
Zergling-new ist offline  
Alt 30.11.2005, 15:58  
Gast
 
Beiträge: n/a
Standard

Das ist aber eher unschön und ein wenig aufwendig, dass jetzt neu zu machen. Gibt es nicht eine Option, dass der ganze Text nach preg_replace nochmal durchgelaufen wird um weitere quote tags zu finden?
 
Alt 30.11.2005, 16:03  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ist eigentlich weder unschön noch aufwendig und damit entfiele auch dein Problem. Kannst ja einfach dein preg_replace() solang rekursiv aufrufen, bis es nichts mehr ersetzt. Einen Flag, der den ersetzten Teil nochmal auf Zutreffen des RegExp durchsucht gibts meines Wissens nach nicht, schließe es aber nicht aus.
Zergling-new ist offline  
Alt 30.11.2005, 16:30  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

So zum Beispiel könntest du es machen:
PHP-Code:
<?php
    
//  $regex enthält deinen regulären Ausdruck
    
while(preg_match($regex$var)) {
        
preg_replace($regex$replace$var1);
    }
?>
Allerdings solltest du dann den Modifier U weglassen.
xabbuh ist offline  
Alt 30.11.2005, 16:50  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Genau, sonst kriegste die Zuordnung

[quot]..[quot]..[/quot]..[/quot]
Zergling-new ist offline  
Alt 30.11.2005, 17:26  
Gast
 
Beiträge: n/a
Standard

Zitat:
$kommentar = preg_replace("|\[quote\](.*)\[/quote\]|Uism",


Die Funktionsweise der Modifer würde ich mir nochmal genau angucken ...
Was hier steht, ist ohne zu denken reingetippt worden
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Problem mit BBcode [ img ] Kein Genie PHP Tipps 2006 23 29.09.2006 14:59
BBCode - Tag verschachteln, Problem mit Reihenfolge. horstenpeter PHP Tipps 2006 4 21.08.2006 12:33
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
bbcode problem Freeaak PHP-Fortgeschrittene 8 03.05.2006 21:27
BBCode mit eregi_replace(); ändert nur letztes Vorkommen Blank PHP Tipps 2006 6 12.04.2006 14:58
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
BBCode Realisierung - Code Andun PHP-Fortgeschrittene 10 18.12.2005 21:09
Array Problem [Ansatz ?] PHP Tipps 2005 0 27.01.2005 18:24
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.