Mam taki problem. Wyszukiwarka ma wyszukiwac obiekty turystyczne po nazwach. Ale z uzglednieniem ze 'Gdańsk'='Gdansk', czyli w wyszukiwarke mozna wpisac tak i tak.
Mam kod:
  1. <?php
  2. function RegExpPl($tekst)
  3. {
  4.  $low=strtr($tekst, array(
  5. 'ˇ'=>'±',
  6. 'Ć'=>'ć',
  7. ''=>'ę',
  8. 'Ł'=>'ł',
  9. 'Ń'=>'ń',
  10. 'Ó'=>'ó',
  11. '¦'=>'¶',
  12. 'Ż'=>'ż',
  13. '¬'=>'ż'
  14. ));
  15.  
  16.  return strtr($low, array(
  17. 'a'=>'[a±]+',
  18. 'c'=>'[cćk]+',
  19. 'e'=>'[eę]+',
  20. 'l'=>'[lł]+',
  21. 'n'=>'[nń]+',
  22. 'o'=>'[oó]+',
  23. 's'=>'[s¶]+',
  24. 'z'=>'[zżĽ]+',
  25. 'v'=>'[vw]+',
  26. ' '=>' +',
  27. ));
  28. }
  29.  
  30. //// i zapytanie
  31. $name_ex=strtolower(RegExpPl($name));
  32.  $sql="SELECT * FROM ".OBJECTS_TABLE." where LOWER(name) REGEXP '".$name_ex."'";
  33.  
  34. ?>


I wszystko dziala ok dopuki ktos nie wpisze 'busko zdrój'.
mamy wtedy:
  1. SELECT *
  2. FROM objects WHERE LOWER(name) REGEXP 'bu[s¶]+k[oó]+ +[zżĽ]+drój'


czyli problem jest jak wyraz konczy sie na litere ktora wystepuje w tablicy do strtr.

Bardzo prosze o pomoc w rozwiazaniu problemu!