phpbar.de logo

Mailinglisten-Archive

[php] Suchfunktion

[php] Suchfunktion

Guido Haeger GH-lists_(at)_ecora.de
Wed, 22 Nov 2000 15:02:00 +0100


Clemens Zvacek schrieb

> GH>     $query .= " ($field LIKE '%$matches[4]%')";
>
> An dieser Stelle muss es '%$matches[2]%' heissen, in der [4] ist nix
> drin

Das Ganze ist wie geschrieben keinesfalls ausgereift, aber $back[2] muß
da gewiss nicht hin, es sei denn, Du hast den regulären Ausdruck
umgeschrieben und einige überflüssige Klammern entfernt... In $back[2]
findest Du ansonsten ggf. die logischen Operatoren AND, OR oder NOT
wieder.

> Ausserdem wuerd ich vorher noch
>
> // fuer deutsche boolsche operatoren!
> $string = eregi_replace(" und "," AND ",$string);
> $string = eregi_replace(" oder "," OR ",$string);
> $string = eregi_replace(" nicht "," NOT ",$string);

Zum einen sind die ereg-Funktionen vergleichsweise langsam, weshalb
preg_replace oder str_replace hier vorzuziehen wäre. Zum anderen kannst
Du dann die sonst mögliche Phrasensuche vergessen. Aus einer
Phrasensuche nach "Milch und Zucker" wird dann eine Suche nach "Milch
AND Zucker"

> // fuer kleinschreibweisen etc.
> $string = eregi_replace(" and "," AND ",$string);
> $string = eregi_replace(" or "," OR ",$string);
> $string = eregi_replace(" not "," NOT ",$string);

Den gleichen Effekt erreichst Du wesentlich effizienter durch den
Parameter i beim regulären Ausdruck.

Guido Haeger



php::bar PHP Wiki   -   Listenarchive