Mailinglisten-Archive |
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