Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pod¶wietlanie fraz - preg_replace i polskie znaki
Forum PHP.pl > Forum > PHP
kris_ga
Witam wszystkich, szukałem trochę nt. mojego problemu i widziałem, że wiele osób ma problem z polskimi znakami w preg_replace, ale jako¶ nie znalazłem rozwi±zania.

Mam skrypt, który pod¶wietla mi wpisan± frazę w wynikach wyszukiwania.

  1.  
  2. function keyword($tekst){
  3. $wyszukaj = $_POST['wyszukaj_slowokluczowe'];
  4. $tekst = preg_replace('/('.preg_quote($wyszukaj).')/i', '<span class="highlight">$1</span>', $tekst);
  5.  
  6. return $tekst;
  7. }


Wszystko jest ok, oprócz tego, że jest jakby case sensitive ale tylko dla polskich znaków.

Przykładowo, gdy wpiszę "Warszawa", "WARSZAWA", "WarSZaWa" to pod¶wietla prawidłowo Warszawa.

Ale gdy wpiszę "ło", to pod¶wietla "Płock", natomiast nie pod¶wietla "Łomża".

Gdy wpiszę "ŁO", to pod¶wietla "Łomża", a znowu nie pod¶wietla "Płock".


Widać więc, że ten problem dotyczy tylko polskich znaków (w drugim przykładzie podkre¶la również "o" pomimo tego, że w wyniku jest "o" małe, a we wpisanej frazie "O" duże".
lukasamd
Spróbuj tak:
  1. $tekst = preg_replace('/('.preg_quote($wyszukaj).')/iu', '<span class="highlight">$1</span>', $tekst);
kris_ga
Rewelacja, działa biggrin.gif

Wielkie dzięki smile.gif
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.