Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_replace (arrays), Kłopot z modyfikatorem "i"
Blackhole
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Hej!
Chcę podświetlać znalezione przez wyszukiwarkę komentrzy frazy, będące szukanymi ciągami. Wyszukiwarka oparta jest na indeksie FULLTEXT i wykorzystuje 'BOOLEAN MODE'. Znajduje więc ciągi nie zważając na wielkość liter.
Mam kod:
  1. $srch = explode(" ",$_POST['searchString']); // rozbij zapytanie na fragmenty
  2. for ($ssi=0; $ssi<count($srch); $ssi++) // usuń operatory
  3. $srch[$ssi] = trim($srch[$ssi], "-+()\"<>");
  4. $rpl = $srch;
  5. for ($ssi=0; $ssi<count($srch); $ssi++) {
  6. $srch[$ssi] = "#".$srch[$ssi]."#i"; // 'pattern' elementu do podświetlenia
  7. // $rpl[$ssi] = '<span class="hl_found">'.$rpl[$ssi]."</span>"; // *1*
  8. $rpl[$ssi] = "<span class=\"hl_found\">$1</span>"; // *2* (kod HTML dający efekt podświetlenia)
  9. }
  10. echo preg_replace($srch, $rpl, $tresc); // wyświetlenie z podświetlonymi znalezionymi wyrazami
Mój problem polega na tym, że obecny kod nie podświetla znalezionych wyrazów, lecz je usuwa. Gdy jednak dam do uruchomienia linię oznaczoną *1* zamiast *2*, to podświetlanie działa, ale poza podświetleniem dostaje też zmieniona wielkość liter w podświetleniu na taką, jaka została używa w zapytanie (w $_POST['searchString'). Np.:
- jeśli wyszukuję ciąg Mama i zostanie znaleziony komentarz ($tresc) zawierająca ciąg mama, to podświetlenie zostanie dodane i mama zmieni się na Mama. Tej zmiany wielkości liter nie chcę.
Co proponujecie?


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post

Posty w temacie
- Blackhole   preg_replace (arrays)   13.06.2010, 13:27:41
- - fifi209   użyj preg_replace_callback   13.06.2010, 14:04:00
- - Blackhole   Hehe Wystarczyło zmienić w linii *2* $1 na ...   13.06.2010, 15:40:27


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 15:32