WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   [php] Lexikon -> Regex (http://www.wcm.at/forum/showthread.php?t=152081)

heli2sky 03.12.2004 13:08

[php] Lexikon -> Regex
 
hallo!

in meinem lexikon hab ich ein paar begriffe + beschreibung. jetzt hab ich eine funktion programmiert, die mir auf knopfdruck alle beschreibungen nach begriffen durchsucht und schon vorhandene begriffe zu einem link macht.

beispiel: begriffe vorhanden: test | bla | xyz

beschreibung von test:
test ist ein bla von nichts und xyz.

---> soll zu "test ist ein [such]bla[/such] von nichts und [such]xyz[/such]." werden

eigentlich fehlt mir auch nciht mehr viel - diese regex hab ich schon:

PHP-Code:

$string eregi_replace("(-|\040|\()" $begriff "(-|\040|\))","\\1[such]" $begriff "[/such]\\2",$string); 

-> das ersetzt mir alle begriffe, die entweder ein space, einen bindestrich oder eine klammer davor oder dahinter haben. leider bleiben begriffe am anfang und ende eines satzes dadurch auf der strecke, da hier davor "nichts" ist bzw. am ende ein punkt, rufzeichen, fragezeichen...

1) wie kann ich diese fälle auch noch miteinbringen?
2) wie mach ich das am besten mit den blöden umlauten? die werden mir von meiner escape-funktion nämlich dann immer in Höhenruder umgewandelt (von [such]Höhenruder[/such]) und dann funktioniert das ganze nicht...

[edit] zu punkt 2 kommt mir gerdae eine idee, aber ich muss jetzt leider weg, das probier ich aus, wenn ich zeit dafür hab...

heli2sky 05.12.2004 18:14

ok, die beiden probleme hab ich gelöst, nur schon ist das nächste da ;)

PHP-Code:

$string str_replace($begriff[0],"[such" $begriff[1] . "]" $begriff[0] . "[/such]",$string); 

das problem: diese zeile ersetzt mir ALLE begriffe durch links, auch wenn die begriffe in einer link- oder bildadresse vorkommen, also zb:
http://www.test.de wird zu http://www.[such01]test[/such].de :(

wie kann ich das erreichen, dass es mir links und bilder verschont?


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag