WinFuture-Forum.de: [gelöst] Php-suche - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[gelöst] Php-suche


#1 _rjchio_

  • Gruppe: Gäste

  geschrieben 12. April 2006 - 14:27

Hi

Ich habe da ein kleines Problem...
Ich erstelle mir gerade ein PHP-Script, das eine Volltextsuche ermöglicht. Zuerst dachte ich an preg_match(). Leider hat die sachte mit preg_match ein kleiner Hacken. Immer wenn man ein Sonderzeichen eingibt (z.B. '*') gibt PHP folgender Fehler aus:

Zitat

Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in <Pfad> on line 74
Ich vermute, dass es daran liegt, dass preg_match nicht automatisch ein \ vor Sonderzeichen stellt.

Gibt es einen andere Suchfunktion oder kann man den Fehler irgendwie umgehen? :unsure:

Danke

MfG rjchio

Dieser Beitrag wurde von mo bearbeitet: 12. April 2006 - 18:29

0

Anzeige



#2 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 12. April 2006 - 14:40

mit "*" wiederholst du das letzte zeichen beliebig oft (einschliesslich nullmal)
mit "." matcht du alle zeichen, ergo mit ".*" alle zeichen beliebig oft.
willst du "*" (als zeichen) matchen, muss du es natürlich escapen ( mit \)
gleiches gilt fuer eine reihe von anderen steuerzeichen ( nur um ein paar zu nennen: "()[]*+.")

Howto's zu regulären ausdrücken gibts viele, die erklärung auf:
http://de.wikipedia...._Ausdr%C3%BCcke
find ich ganz ok.

auf englisch nennt sich der spass "regular expressions" oder kurz regex (falls du danach googeln möchtest findest du auf englisch türlich mehr).

afaik ist die php-preg_match-geschichte perl-regex kompatiblen - und dazu gibts jede menge literatur. wenn du viel mit regex machen möchtest, ist vielleicht perl für dich auch besser geeignet - in perl sind reguläre ausdrücke sehr schön und sehr schnell ( in sachen schreibweise ) konstruierbar.
I'm mó. mo's good twin.
0

#3 _rjchio_

  • Gruppe: Gäste

  geschrieben 12. April 2006 - 15:08

Zitat

willst du "*" (als zeichen) matchen, muss du es natürlich escapen ( mit \)
gleiches gilt fuer eine reihe von anderen steuerzeichen ( nur um ein paar zu nennen: "()[]*+.")
Und genau für das suche ich eine PHP-Funktion, gibts das? :unsure:

Danke

MfG rjchio
0

#4 Mitglied ist offline   Floele 

  • Gruppe: aktive Mitglieder
  • Beiträge: 919
  • Beigetreten: 22. Juni 04
  • Reputation: 0

geschrieben 12. April 2006 - 17:07

preg_quote()
0

#5 _rjchio_

  • Gruppe: Gäste

geschrieben 12. April 2006 - 17:12

Beitrag anzeigenZitat (Floele: 12.04.2006, 18:07)

Danke - das ist genau das richtige :P

MfG rjchio
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0