php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.08.2005, 19:54  
Erfahrener Benutzer
 
Registriert seit: 29.12.2004
Beiträge: 149
Blank
Standard Zwischen eregi_replace Quellen weiter suchen

Ich musste erschreckened feststellen das zwischen den eregi_replace Teilen die ausgelesen werden nicht nach den elementen von eregi_replace gesucht wird von dem eregi_replace das gerade verwendet wird.
z.b
das eregi_replace sucht nach [zitat=(.*)](.*)[/zitat]
(ich schreibe nur zitat statt quote weil sonst das bbcod ein diesem Forum aktiv wird.)

das ist der code zum umwandeln
PHP-Code:
<?php
$postText 
eregi_replace(".*\[zitat=(.*)](.*)\[/zitat]","<div style=\"padding-left:10px;\">[b]".$text_008."[/b]<table border=\"1\"><tr class=\"ordz_".$ordz."\"><td style=\"text-align:left;padding:4px;\">[i]".$text_007." \\1[/i]
\\2</td></tr></table></div>"
,$postText);
?>
das ist der text der durch das eregi_replace gejagt wird:
Code:
[zitat=Blank][zitat=Blank]Also hier Teste ich ob das mit dem Quote klappt. Wollmers mal hoffen.:D [/zitat]Also so mit dem einfügen hats jetzt geklappt. nur mit dem Drunterschreiben wars vorher nicht.[/zitat]
Und das sit das waas nach dem durchjagen ausgegeben wird vom Browser: darum ist eine Quote umrahmung und das steht drin:
Code:
Orginal von Blank]Also hier Teste ich ob das mit dem Quote klappt. Wollmers mal hoffen. [/zitat
Also so mit dem einfügen hats jetzt geklappt. nur mit dem Drunterschreiben wars vorher nicht.
__________________
Cya, Blank
Blank ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.08.2005, 20:09  
Gast
 
Beiträge: n/a
Standard

http://de3.php.net/manual/de/ref.regex.php
Zitat:
Tipp: Bei Verwendung der PCRE Funktionen unterstützt PHP auch Reguläre Ausdrücke mit einer zu Perl kompatiblen Syntax. Diese Funktionen unterstützen non-greedy Matching, Assertions, bedingte Subpatterns und viele andere Merkmale, die von der POSIX-erweiterten Syntax regulärer Ausdrücke nicht unterstützt werden.
Die Gier (greedy match) der posix regex stört hier, also schau Dir mal lieber http://php.net/pcre an.
 
Alt 07.08.2005, 20:36  
Erfahrener Benutzer
 
Registriert seit: 29.12.2004
Beiträge: 149
Blank
Standard

Willst du mir damit sagen das das alles mit dem begrenzungszeichen was zu tun hat?
aber sobald ich ein anderes begrenzugns zeichen nehme als .* knallt dr mir nur noch den bbcode hin.
__________________
Cya, Blank
Blank ist offline  
Alt 07.08.2005, 21:13  
Gast
 
Beiträge: n/a
Standard

Nö, von Begrenzungszeichen habe ich nichts geschrieben.
Aber von http://php.net/pcre anstatt ereg_replace.
 
Alt 08.08.2005, 12:27  
Erfahrener Benutzer
 
Registriert seit: 29.12.2004
Beiträge: 149
Blank
Standard

So ich verwende gerade preg_replace statt ereg_replace und muss sagen es hat sich nicht verändert and er darstellungs weise. Es bleibt wieterhin bei einer Zitatbox in der sich der restliche bbcode aufhällt
__________________
Cya, Blank
Blank ist offline  
Alt 08.08.2005, 12:45  
Gast
 
Beiträge: n/a
Standard

Dann wird es jetzt Zeit, das Suchmuster auf ungreedy umzustellen.
siehe auch: http://php.net/reference.pcre.pattern.modifiers
 
Alt 08.08.2005, 12:47  
Erfahrener Benutzer
 
Registriert seit: 29.12.2004
Beiträge: 149
Blank
Standard

Ich abe den Fehler gefunde. Aber ich weis noch nciht wie ich den beheben kann.
der Fehler ist der: das bei meinem Quote sachen [zitat=(*.Benutzer.*)]*.(zitat).*[/zitat]
und das der ja nur alles was gleich dem ist was ich eingetragen habe tauscht und der mich nciht enttäuschen will macht der das so:
z.b.
Code:
[zitat=Tux][zitat=Blank]Blub Blank[/zitat]Blub Tux[/zitat]
und der ließt jetzt genau mit diesem Markierungen raus. Alles was nicht fett ist ist der Text den ich mit (.*) herauslese.

[zitat=Tux][zitat=Blank]Blub Blank[/zitat]Blub Tux[/zitat]

Das heißt alles was fett ist nimmt der als die Begrenzungen udn alles was normal ist ist für den Text. Und wenn der das alles einmal ersetzt hat dann kann der auch nie wieder auslesen weil dann einige begrenzungen fehlen.

So das ist der Fehler und jetzt brauch ich nur noch eine Lösung. Die ich leider bisher noch nicht gefunden habe.
__________________
Cya, Blank
Blank ist offline  
Alt 08.08.2005, 13:01  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zeige mal deinen genauen Aufruf des entsprechenden Befehls. Stimmt der Modifier und was nimmst du als Begrenzer?
__________________
Gruss
L
lazydog ist offline  
Alt 08.08.2005, 13:15  
Erfahrener Benutzer
 
Registriert seit: 29.12.2004
Beiträge: 149
Blank
Standard

also als begrenzer nehme ich bei preg_replace { & } und bei eregi_replace .*

Nur mal so. Wie bentze ich einen Modifikator. Entweder ahb ich das in der ganzen Lektüre überlesen oder es standf nicht drin.
__________________
Cya, Blank
Blank ist offline  
Alt 08.08.2005, 14:08  
Erfahrener Benutzer
 
Registriert seit: 29.12.2004
Beiträge: 149
Blank
Standard

So ich habe jetzt wie du gesagt hast VolkerK das such muster mit dem Modifikator PCRE_UNGREEDY bezogen. Dies hatte folgenden effeckt das der erst ZITAT ÖFFNUNGS Code angenohmmen wurde und bis zum ersten Zitat Schließungs durchgeführt wurde:
z.b
[zitat=Tux][zitat=Blank]Blub Blank[/zitat]Blub Tux[/zitat]

Das sieht dann wiefolgt aus:


Zitat:
Orginal von Blank
[zitat=Blank]Also hier Teste ich ob das mit dem Quote klappt. Wollmers mal hoffen.
Also so mit dem einfügen hats jetzt geklappt. nur mit dem Drunterschreiben wars vorher nicht.[/zitat]Blub dich rein!
__________________
Cya, Blank
Blank ist offline  
 


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
Kommunikation zwischen Javascript und php!? Funky_ PHP Tipps 2006 7 06.08.2006 17:16
Borderproblem: Abstand zwischen! HTML, Usability und Barrierefreiheit 3 27.06.2006 13:40
zeit zwischen 2 datetime jens76 Datenbanken 13 08.06.2006 14:15
SELECT zwischen zwei Datumfeldern nick-parker Datenbanken 9 27.03.2006 21:08
[Erledigt] Abstände zwischen Tabellen HTML, Usability und Barrierefreiheit 1 11.10.2005 14:55
Session - Werte zwischen speichern! PHP Tipps 2005-2 9 05.10.2005 18:05
text zwischen xx und xx in variable speichern? md5hash PHP Tipps 2005-2 3 13.09.2005 18:28
Text zwischen zwei zechen löschen PHP Tipps 2005-2 2 08.07.2005 19:21
Seite zwischen URL und Download Zangelo PHP Tipps 2005-2 0 16.06.2005 22:22
[Erledigt] Kommunikation zwischen Objekten - Wie geht es richtig? PHP Tipps 2005 9 11.04.2005 00:57
abstrakte unterschiede zwischen ie und opera HTML, Usability und Barrierefreiheit 8 12.03.2005 19:54
[Erledigt] SELECT * FROM tabelle WHERE id 'zwischen' 10 AND 20 Datenbanken 2 28.11.2004 14:37
Variablen zwischen verschiedenen Clientsessions teilen PHP Tipps 2004 2 25.06.2004 20:03
Übertragung von Daten zwischen Anmeldeschritten PHP Tipps 2004 6 18.06.2004 20:32
[Erledigt] Cursor zwischen ] und [ setzen HTML, Usability und Barrierefreiheit 9 11.06.2004 10:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
eregi_replace greedy

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:33 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.