![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Gast
Beiträge: n/a
|
Hallo zusammen, habe dieses Problem jetzt schon in 2 verschiedenen Foren gepostet. Leider konnte mir niemand helfen, darum versuch ich mein Glück jetzt mal hier. Folgende Situation: Ich habe ein Array mit verschiedenen Begriffen. Mit der preg_replace-Funktion möchte ich nun einen Text nach dem Vorkommen dieser Begriffe durchsuchen. Falls ein Begriff gefunden wird, gibt es ein anderes Array, das die zu ersetzenden Begriffe enthält. PHP-Code: Habe jetzt das Problem dass maskierte HTML Zeichen nicht in dieser Funktion erkannt werden. Wenn ich Begriffe OHNE Sonderzeichen habe, funktioniert alles perfekt. Kommt allerdings ein § oder ein & dazu, kann die Funktion anscheinend nicht mehr erkennen ob ein Wort auch so im Text vorkommt. Der Titel und auch der Text werden vorher mit htmlentities(); konvertiert. preg_replace sieht so aus: PHP-Code: Grüße duderino Geändert von duderino (29.09.2006 um 08:45 Uhr). |
|
| | Nach oben #4 | |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
| Zitat:
woher soll der regex das wissen ? regex sprechen kein html, sondern tun das was ihnen der Programmierer sagt. eine möglichkeit wäre z.b. das array zu kopieren, nochmal durch ne foreach-schleife zu jagen, mittels htmlentities jedes element in die sonderzeichen umschreiben und dann an das erste array hintedranhängen bevor preg_replace läuft, allerdings solltest du der sauberkeit halber, weil man nie weis was für zeichen in deinen "strings" drin sind vieleicht mal beim hinzufügen neuer worte auch preg_quote nutzen. Sonst kannste schnell einen regex ham der entweder einen Fehler bringt, oder aber nicht sauber ersetzt wird. mfg robo47 | |
| | |
| | Nach oben #5 |
| Gast
Beiträge: n/a
|
Klar das regex kein HTML kann. Aber ich habe ja in beiden Variablen (Begriffe und Texte) die gleichen maskierten Zeichen. Bin davon ausgegangen dass die Zeichen trotzdem als gleich erkannt werden, auch wenn sie schon maskiert sind. Die Zeichenreihenfolge ist ja in beiden Fällen gleich. Das mit preg_quote(); werde ich mal ausprobieren. Allerdings sind die Sonderzeichen & oder § ja keine Zeichen die von dieser Funktion berücksichtigt werden, oder? Grüße duderino PS: Es funktioniert auch nicht wenn z.B. die ä,ö,ü in der Zeichenkette maskiert stehen. Geändert von duderino (29.09.2006 um 09:49 Uhr). |
|
| | Nach oben #6 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
|
wie wäre es mal mit nem kontreten beispielcode ? wo beide arrays mit den werten gefüllt werden die problematisch sind, dann ersetzt wird und am ende das resultat ausgegeben wird ? mfg robo47 |
| | |
| | Nach oben #7 | |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 521
| Zitat:
__________________ Weißt Bescheid - Scheiß wie weit | |
| | |
| | Nach oben #8 |
| Gast
Beiträge: n/a
|
Hier die Funktion die die Wörter durch Links ersetzen soll: PHP-Code: |
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Tabelle mit Sonderzeichen löschen | Neq' | Datenbanken | 1 | 28.11.2006 21:27 |
| Deutsche Sonderzeichen in Unicode | `B | Allgemeine Java-Programmierung | 2 | 21.02.2005 22:38 |