Mailinglisten-Archive |
Sascha Meyer wrote: > Hallo PHP-Liste! > > Ich grübele im Moment, ob es schon eine fertige Lösung für folgende > Aufgabe gibt: > > wenn ein User in ein Suchfeld eine Suche wie z.B. > > [suchtext]("ATX Netzteil" ODER Netzteil) UND Enermax[/suchtext] > > eingibt, dann würde ich gerne daraus einen SQL-String wie > > [sql] ... WHERE (text LIKE '%ATX Netzteil%' OR text LIKE > '%Netzteil%') AND text LIKE '%Enermax%'[/sql] > > machen. Der Parser für das Statement müsste also Klammersetzung, > Anführungszeichen und spezielle Schlüsselwörter (z.B. "AND", "OR", > "+", "&", "-") erkennen und entsprechend umsetzen müssen. > > Habt ihr vielleicht eine Idee, wo ich sowas finde? PEAR hat nichts > dergleichen zu bieten, bei phpclasses bin auch nicht fündig geworden. > Und bevor ich anfange, mir selbst eine Klasse für sowas zu schreiben, > frag ich lieber nochmal nach :) Selber bauen, ist ganz einfach :-D. Ich hab mal mit sowas in der Größenordnung in Java geschrieben und mittlerweile ist daraus ein Parser geworden, der in der Lage ist komplette php-Skripte zu parsen. Also alles wird (noch) nicht untesrtützt, aber schon recht viel. Inklusive OOP *gg*. Ok... Mein Code ist nicht so performant, aber darum ging es bei dem Projekt auch nicht. Problem ist nur, dass sowas in php nochmal 'ne Stufe langsamer würde... Naja egal... Könnte man nützlich sein... Weisste was... Ich schreib mal eben was. *Stunden später* http://cipher-code.de/public_phpcode/SearchStringParser/SearchStringParser.php Ist ein wenig Quick&Dirty, aber funktioniert. Das parst dir den Suchstring in einen schönen Baum und den dann wieder ein ein SQL-Query zu bekommen, schaffst du bestimmt :-). > > Dankeschön! > > Gruß, Sascha Yannik
php::bar PHP Wiki - Listenarchive