Mateusz10
24.06.2009, 09:16:42
Witam! Chciałbym stworzyć na swoim portalu wyszukiwarkę treści tylko z mojej strony aby można tam było wpisać słowo i aby pokazywało wszystkie tematy aktualności z tym związane. Jak to zrobić
Spawnm
24.06.2009, 09:29:38
w zapytaniu sql użyj LIKE "%$wyraz%"
alegorn
24.06.2009, 09:30:41
to zalezy jak masz zbudowana storne, a dokladniej gdzie trzymasz tresc po ktorej chcesz wyszukiwac.
jesli w plikach - to prosto,
tworzysz iterator po katalogu, przechodzisz po kazdym prawidlowym pliku, sprawdzasz wyrazeniami regularnymi i wyswietlasz wynik.
jesli content masz w bazie danych - to po prostu preparujesz odpowiedniego sql'a i wyswietlasz wynik,
ewent hybryda obu opcji
oczywiscie to tak w wielkim skrocie, pamietaj o zabezpieczeniu sie na zlosliwy kod, a przy przeszukiwaniu tresci - radze wyciac wczesniej wszelkiego typu znaki html (takze wyrazeniem regularnym)
oczywiscie - przeszukiwanie calosci rozbudowanego serwisu w ten sposob to dosc czasochlonne moze byc, jesli czas swykonywania jest zbyt wielki - trzeba by bylo pomyslec o zindeksowaniu calosci.... ale to juz inna bajka.
tak naprawde poziom trudnosci wykonania tego o czym napisalem - zalezy od stopnia skomplikowania wyszukiwarki... to o czym napisalem, jest do wykonania w mniej niz pol godziny(w najprostszej postaci), i to z testami...
Mateusz10
24.06.2009, 09:33:36
Wyszukiwarka ma przeszukiwać pliki stron. A może podacie jakiś konkretny skrypt?
Spawnm
24.06.2009, 09:35:48
alegorn
24.06.2009, 10:03:22
to tak na szybko, bez wiekszej finezji i zabezpieczen...
<?php
//tablica plikow po ktorch nie wyszukujemy plikow
'index.php'
);
// szukany ciag
$query = (isset($_REQUEST['query']))?
$_REQUEST['query']:null; $dir = new DirectoryIterator
(dirname(__FILE__)); foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
$fname = $fileinfo->getFilename();
continue;
$fpath = dirname(__FILE__) . '/'. $fname; //szukam tylko w plikach z rozszezeniem PHP
if ($ext =="php"){
$sprawdz = ereg("(".$query.")", $tresc); if($sprawdz !== false){
$arSearch[] = '<a href="'.TUTAJ_URL.$fname.'">'.$fn[0].'</a>';
}
}
}
}
}
else
?>
Mateusz10
24.06.2009, 14:40:14
A jak to podkleić pod ramkę wyszukiwania? bo jak wkleiłem na strone to pisze nie znalazłem i to wszystko.
Pomocy! DO czego wkleić ten kod?
Spawnm
24.06.2009, 14:46:17
Cytat(Mateusz10 @ 24.06.2009, 15:40:14 )

Pomocy! DO czego wkleić ten kod?
Do pliku

Pokaż jak obecnie wygląda twój kod.
a to
<?php
else
?>
dał bym w klamerce od
if(!empty($query)){
Mateusz10
24.06.2009, 16:18:04
Ale ja nie mam pojęcia jak to podkleić do strony. Możecie mi powiedzieć jak to zrobić?
alegorn
25.06.2009, 11:32:16
hmm... okazalo sie ze zrobilem maly error

, tak bywa jak sie z glowy bez sprawdzania pisze.
tu masz caly plik, lacznie z formularzem do wywolania, zapisz go i zadziala... dalej to juz chyba sobie poradzisz...
<form action="?"><input name="query" /> <input type="submit" /></form>
<?php
//tablica plikow po ktorch nie wyszukujemy plikow
'index.php'
);
// szukany ciag
$query = (isset($_REQUEST['query']))?
$_REQUEST['query']:null; $dir = new DirectoryIterator
(dirname(__FILE__)); foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
$fname = $fileinfo->getFilename();
continue;
$fpath = dirname(__FILE__) . '/'. $fname; //szukam tylko w plikach z rozszezeniem PHP
if ($ext =="php"){
$sprawdz = ereg("(".$query.")", $tresc); if($sprawdz !== false){
$arSearch[] = '<a href="'.TUTAJ_URL.$fname.'">'.$fn[0].'</a>';
}
}
}
}
}
else
?>
tym razem testowalem - dziala:)
Mateusz10
25.06.2009, 15:23:39
A u mnie na stronie jak wpisze i dam wyszukaj to pisze:
Fatal error: Cannot instantiate non-existent class: directoryiterator in /var/www/sites/yoyo.pl/m/i/miso/menu.php on line 40
Crozin
25.06.2009, 16:09:11
Czyżbyś miał PHP4?
Mateusz10
25.06.2009, 17:34:30
wątpie gdyż na yoyo.pl pisze iż jest tam php 5 więc co jest przyczyną? a może nie tam gdzie trzeba dodałem skrypt? bo ja mam tak w index.php jest menu i tam jest include do menu.php i w tym menu.php jest menu rozwijane i pod nim wyszukiwarka.
erix
25.06.2009, 17:58:21
Albo masz czwórkę włączoną, albo za starą piątkę.
Co masz w
phpinfo" title="Zobacz w manualu PHP" target="_manual?
Mateusz10
25.06.2009, 18:32:20
już mam, takie coś mi wyskoczyło.
Kod
4.4.4-8+etch4yoyo1
Jak zmienić php na 5?
erix
25.06.2009, 20:48:04
Jesteśmy pomocą hostingu?
Poszukaj w panelu/na forum.
Mateusz10
26.06.2009, 09:38:39
Czyli zmienić hosting i będzie dobrze tak?
Crozin
26.06.2009, 10:30:44
Czyli zapytać obsługę hostingu, albo wklepać w google: jak zmienić na php5 [tu nazwa hostingu]
Pozwolę sobie odświeżyć temat.
Wyszukiwarka podana przez alegorna działa z wyjątkiem słów zawierających polskie znaki.
Zwraca wtedy brak wyników.
Może jakieś rozwązanie nie nazbyt skomplikowane komuś się nasuwa?
Pozdrawiam
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.