getreidemuehlen
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 17.01.2004, 02:22   #1
TP-Junior
 
Registriert seit: Sep 2001
Ort: Hamburg
Julimond macht alles soweit korrekt
Question

preg_replace


Folgende Situation:
In einem Formularfeld wird der Suchbegriff "fahr" eingegeben.
Der passende Eintrag (es geht um ein Fahrrad) wird aus der Datenbank (mySQL) rausgesucht.
Jetzt soll aber natürlich der Suchbegriff auch farblich markiert werden. Egal ob er alleine steht oder innerhalb von anderen Zeichen und natürlich case insensitive.

PHP-Code:
$ausgabe preg_replace("/(.*?)($suchbegriff)(.*?)/i","\\1<span class=\"marked\">\\2</span>\\3",$eintrag); 
tut das auch völlig richtig.
Leider aber auch bei <img src="...fahr...">
Das soll natürlich nicht. Das bild des Fahrrades soll natürlich normal angezeigt werden.

Wie kriege ich hin, daß nur Zeichen umgewandelt werden sollen, die nicht innerhalb von <... > stehen (bei Links soll das ja auch nicht passieren)?

Geändert von Julimond (17.01.2004 um 02:31 Uhr).
Julimond ist offline   Mit Zitat antworten


Alt 17.01.2004, 13:28   #2
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
Versuchs mal mit

PHP-Code:
$ausgabe preg_replace("/([^<]*)($suchbegriff)([^>]*)/i","\\1<span class=\"marked\">\\2</span>\\3",$eintrag); 
webmichl ist offline   Mit Zitat antworten
Alt 17.01.2004, 14:15   #3
TP-Junior
 
Registriert seit: Sep 2001
Ort: Hamburg
Julimond macht alles soweit korrekt
Thumbs up

Bingo!

Außer, daß ich beim ersten Versuch die Backslashes vor 1,2,3 nicht gequotet hatte...

Wär ich von alleine nicht drauf gekommen.
Vielen Dank.

Nico
Julimond ist offline   Mit Zitat antworten
Alt 20.10.2004, 15:41   #4
TP-Junior
 
Registriert seit: Sep 2001
Ort: Hamburg
Julimond macht alles soweit korrekt
Zitat:
Zitat von webmichl
Versuchs mal mit

PHP-Code:
$ausgabe preg_replace("/([^<]*)($suchbegriff)([^>]*)/i","\\1<span class=\"marked\">\\2</span>\\3",$eintrag); 
Hallo webmichl,

ich muß Dich nochmal auf eine RegEx ansprechen, die schon lange her ist. Du hattest mir damals die Lösung genannt und ich hab geschrieben, daß sie funktioniert. Das war auch so, daß weiß ich. Jetzt funktioniert es leider nicht mehr und ich verstehe so gar nicht warum das so ist.
Kannst Du mir bitte nochmal helfen?

--------------------------------------------------------------------------
Folgende Situation:
In einem Formularfeld wird der Suchbegriff "fahr" eingegeben.
Der passende Eintrag (es geht um ein Fahrrad) wird aus der Datenbank (mySQL) rausgesucht.
Jetzt soll aber natürlich der Suchbegriff auch farblich markiert werden. Egal ob er alleine steht oder innerhalb von anderen Zeichen und natürlich case insensitive.
Leider aber auch bei <img src="...fahr...">
Das soll natürlich nicht. Das bild des Fahrrades soll natürlich normal angezeigt werden.

Wie kriege ich hin, daß nur Zeichen umgewandelt werden sollen, die nicht innerhalb von <... > stehen (bei Links soll das ja auch nicht passieren)?
------------------------------------------------------------------------------

Du hattest mir damals folgendes genannt:
$ausgabe = preg_replace("/([^<]*)($suchbegriff)([^>]*)/i","\\1<span class=\"marked\">\\2</span>\\3",$eintrag);

Genau so steht es in meiner Datei. Es werden aber dennoch Bilder zerschossen.
Julimond ist offline   Mit Zitat antworten
Alt 20.10.2004, 16:12   #5
TP-Special Mod
 
Benutzerbild von webmichl
 
Registriert seit: Jun 2001
Ort: 8°21' O 49°1' N
webmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine Userwebmichl lebt für das TP und seine User
Da soll ich mich jetzt noch dran erinnern?

Wenn's damals funktioniert hat und jetzt nicht mehr, muß sich ja irgendwas am auszuwertenden Text verändert haben. Kannst Du mal ne Beispielzeile posten?
webmichl ist offline   Mit Zitat antworten
Alt 20.10.2004, 17:12   #6
TP-Junior
 
Registriert seit: Sep 2001
Ort: Hamburg
Julimond macht alles soweit korrekt
Ja, ich weiß, da komm ich x Monate später wieder damit an... *Asche über mein Haupt* ;-)

Ich kann Dir ein Live-Beispiel geben www.nicogo.de -> Gerümpel des Alltags
Dort als Suchbegriff "bibi" eingeben. Die Markierung wird auch in einem img-Tag gesetzt.
Julimond ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
preg_replace preg_replace
« Tabellen-Grafik mit PHP erstellen? | Image URL auf Verfügbarkeit prüfen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:29 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67