![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 9 Dołączył: 29.05.2009 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Witam, (IMG:style_emoticons/default/oneeyedsmiley02.png)
mam taki problem w bazie danych mam zapisane nazwy miast np: Ostrów. Chcę zrobić wyszukiwarkę, która po wprowadzeniu "ostrow" znajdzie mi "Ostrów". Jednak mam kłopot ze zamianą znaków. Tutaj mam fajną funkcję tylko ona zmienia to odwrotnie: Kod function clear_spec_char($text){ $tabela = Array( //WIN "\xb9" => "a", "\xa5" => "A", "\xe6" => "c", "\xc6" => "C", "\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L", "\xf3" => "o", "\xd3" => "O", "\x9c" => "s", "\x8c" => "S", "\x9f" => "z", "\xaf" => "Z", "\xbf" => "z", "\xac" => "Z", "\xf1" => "n", "\xd1" => "N", //UTF "\xc4\x85" => "a", "\xc4\x84" => "A", "\xc4\x87" => "c", "\xc4\x86" => "C", "\xc4\x99" => "e", "\xc4\x98" => "E", "\xc5\x82" => "l", "\xc5\x81" => "L", "\xc3\xb3" => "o", "\xc3\x93" => "O", "\xc5\x9b" => "s", "\xc5\x9a" => "S", "\xc5\xbc" => "z", "\xc5\xbb" => "Z", "\xc5\xba" => "z", "\xc5\xb9" => "Z", "\xc5\x84" => "n", "\xc5\x83" => "N", //ISO "\xb1" => "a", "\xa1" => "A", "\xe6" => "c", "\xc6" => "C", "\xea" => "e", "\xca" => "E", "\xb3" => "l", "\xa3" => "L", "\xf3" => "o", "\xd3" => "O", "\xb6" => "s", "\xa6" => "S", "\xbc" => "z", "\xac" => "Z", "\xbf" => "z", "\xaf" => "Z", "\xf1" => "n", "\xd1" => "N", //I to co nie potrzebne "$" => "-", "!" => "-", "@" => "-", "#" => "-", "%" => "-"); return strtr($text,$tabela); } Wiadomo zmieniła by Ostrów === na Ostrow. Tylko, że ja muszę zrobić to odwrotnie. Więc chciałem to zrobić w ten sposób: Kod function _no_pl($tekst) { $tabela = Array( "\x6f" => "ó", "\x4f" => "Ó"); return strtr($tekst,$tabela); } Tylko teraz po wprowadzeniu Ostrow zmienia na Óstrów. Jak zrobić aby sprawdziło wszystkie kombinacje czyli: Óstrow = Ostrów ? jeżeli nie Óstrów = Ostrów ? jeżeli nie Ostrów = Ostrów prawda skrycik wykonuje się dalej? (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Generalnie jeśli już bierzemy się za wyszukiwanie czegokolwiek w bazie
warto utworzyć do tego celu osobną tabele, gdzie będziemy trzymać relację słów kluczowych do artykułów/tematów/postów czy czego tam szukamy... Wpisaną frazę dzielimy na słowa, dla każdego słowa wykonujemy zapytanie wsparte przez indeksy.. Wyszukiwanie będzie trwało tyle co na google, bez znaczenia jak wiele contentu przeszukujemy.. Inaczej musimy robić full-text-search który trwa półtora miliona lat świetlnych i przeciąża bazę. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 16:04 |