Podaję kod dla pliku wyszukiwarkatxt2.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Wyszukiwarka oparta na plikach tekstowych - ITPorady.pl</title> </head> <body> <form action="" method="post"> <input type="text" name="wyszukiwarka"/> <input type="submit" value="Szukaj" /> </form> <?php function str2url( $str, $replace = "-" ){ // konwersja znaków utf do znaków podstawowych $str = iconv('UTF-8', 'ASCII//TRANSLIT', $str); // Niektóre francuskie i niemieckie litery pozostawiają po takiej konwersji (jak powyżej) // dodatkowe znaki. Poniższe dwie linijki te znaki wycinają } ?> <?php $bl=false; $wyszukiwarka = $_POST['wyszukiwarka']; foreach($dane as $key){ for ($fi=0; $fi <$ile; $fi++){ if(stripos(str2url($key), str2url($gie[$fi]))){ echo '<a href="'.$g[0].'" title="'.$g[2].'">'.$g[1]."</a>\n<br>"; //strtolower() - zmienia na małe litery cły tekst/ strtoupper()- zmienia na duże cały tekst/ generują krzaczki zamiast polskich znaków $bl = true; } } } //echo '</ul>'; } ?> </body> </html>
oraz kod pliku z danymi dane.txt:
firma.html | f zobacz co proponujemy | hasło nowe inne 0 inne.html | i Mapa dojazdu - zobacz jak do nas dojechać | słowa kluczowe rura.html | r Witam Witam Witam Witam | bla bla kontakt.html | kontakt - jeżeli masz jakieś pytania - pisz śmiało! | coś tam innego
Drugi problem jest związany z samym wyszukiwaniem, gdy za pierwszym znakiem "|" mam nazwę taką jak w linku np. "kontakt" to do zapytania "kont" otrzymuję wynik: "nie znaleziono podanej frazy: kont" ale jeśli zapytam o "onta" to otrzymuję link do szukanej strony, czyli do kontakt.html
Ma ktoś może jakiś pomysł dlaczego się tak dzieje i jak można to rozwiązać?
Na wstępie powiem, że nie wiem jak to edytować, żeby dodać poprawki.
Udało mi się zmusić skrypt do generowania wyników wyszukiwania bez powtórzeń oto kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Wyszukiwarka oparta na plikach tekstowych - ITPorady.pl</title> </head> <body> <form action="" method="post"> <input type="text" name="wyszukiwarka"/> <input type="submit" value="Szukaj" /> </form> <?php function str2url( $str, $replace = "-" ){ // konwersja znaków utf do znaków podstawowych $str = iconv('UTF-8', 'ASCII//TRANSLIT', $str); // Niektóre francuskie i niemieckie litery pozostawiają po takiej konwersji (jak powyżej) // dodatkowe znaki. Poniższe dwie linijki te znaki wycinają } ?> <?php $bl=false; $wyszukiwarka = $_POST['wyszukiwarka']; foreach($dane as $key){ for ($fi=0; $fi <$ile; $fi++){ if(stripos(str2url($key), str2url($gie[$fi]))){ $wejscie[] = '<a href="'.$g[0].'" title="'.$g[2].'">'.$g[1]."</a>\n<br>"; $bl = true; } } } else { for ($i=0;$i<$n1; $i++) { } } } ?> </body> </html>
jednak nadal nie mogę sobie poradzić z drugą częścią mojego pytania.
Jeśli miałby ktoś pomysł jak sprawić by przedstawiony kod był czytelniejszy to proszę o poprawienie.