![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 1 Dołączył: 2.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Krótko o co mi chodzi:
mam zapytanie z bazy mySql, które wybiera mi rekordy, gdzie w kolumnie opis znajdzie ciąg zadany z formularza np %Szkoła wyższa% CODE SELECT opis from jakas_tabela WHERE opis like %string z formularza% Mysql domyślnie ignoruje wielkości liter (i bardzo dobrze) Meritum: Chcę znalezione słowo opisu zaznaczać dodatkowym stylem CSS Wpadłem na proste rozwiązanie: CODE str_replace($string_z_formularza, '<span style="color: red;">'.$string_z_formularza.'</span>', $calosc_opisu_z_bazy) Jednak ma to jedną wadę szukane wyrażenie musi "trafić" w wielkość liter jakie są w bazie danych: Czyli - w bazie opis jest np. "test test test test Szkoła Wyższa test test test" Str_replace oczywiście przyniesie skutek (i doda klase CSS) tylko jeżeli będziemy wyszukiwać ze zgodnością wielkości liter: "Szkoła Wyższa" Jeżeli wpiszemy "szkoła wyższa" - niestety ![]() Prosiłbym o jakiś pomysł jak to najlepiej rozwiązać: W ostateczności możnaby "podnosić" wielkość znaków całego opisu z bazy jak i wyrażenia z formularza, ale to skutkowałoby "podniesieniem" i wyświetleniem całego opisu w wielkich znakach, a tego chciałbym uniknąć. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
http://snippets.bigtoach.com/snippet/stri_replace/ albo preg_replace()
-------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 1 Dołączył: 2.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Sprytne rozwiązanie, ale ma jeszcze malutką wade
Co prawda wyszuka dowolnie pasujący wyraz (jeżeli chodzi o wielkość liter), ale jak by jeszcze wykombinować aby nie podmieniało (tych wielkości liter) z zadanych w formularzu. Bo w formularzu wpiszemy np szKołA WyżSzA i zostanie wyświetlone to jako wynik hmm... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 1 Dołączył: 2.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jednak nie działa mi coś to jak należy:
Napisze moje zastosowanie: CODE $zm = 'sdsd Test slsldjk'; $szukana = 'test'; $zm2 = $this->ext_str_ireplace($szukana,'<span style="background-color: yellow;">'.$szukana.'</span>',$zm); echo $zm2; Wynik to: sdsd test slsldjk Zamiast: sdsd Test slsldjk Dla uzupełnienia dodam, że wcześniejsza funkcja z przykładu manuala działa poprawnie: function highlightStr($haystack, $needle, $highlightColorValue) Ten post edytował sonicius 14.10.2009, 21:49:32 |
|
|
![]() ![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 53 Dołączył: 10.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
no przecież podstawiasz $szukana która jest pisana z małej litery oO
musiałbyś zrobić tak wyszukać czy taki ciąg istnieje a nastąpnie pobrać go ze stringa i wstawić to co pobrałeś w to miejsce a nie to co wyszukujesz |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak nie działa, jak działa. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 21.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Rejestrowałem się przedewszystkim, aby odpowiedzieć na to pytanie
![]() Mam nadzieję, że w przyszłoći ktoś na tym skorzysta, bo jest już troche późno na odpowiedź. Funkcja "str_ireplace" jest analogiczna do funkcji "str_replace", tylko, że ta pierwsza ignoruje wielkość liter. Pozdrowionka |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 8.08.2025 - 13:20 |