Skrypty PHP

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
adi_mzh
Posty: 8
Rejestracja: ndz mar 20, 2005 10:23 pm

Skrypty PHP

Post autor: adi_mzh »

Witajcie. Chcialem na swojej stronce zamieścić sonde, datownik z imieninami i wyszukiwarke danych zawartych na stronie. Co do sondy i datownika to proszę o polecenia jakiegoś wg. was najlepszego skryptu. A jesli chodzi o wyszukiwareczke to moze bym ją sam (lub prawie sam) napisał, lecz problem w tym ze nie mam zielonego pojecia jak. (zapoznałem się z kilkoma dstępnymi kursami php/mysql) Na stronkach znalazlem jedynie skrypty wyszukujące dane za pomocą innych "wiekszych" wyszukiwarek. Mi chodzi jedynie o taką która wyszuka interesująse kogoś słowo (słowa) z pośród zawartych w moim serwisie (niezbyt dużym). :roll2:
Asit
Zaczyna działać
Zaczyna działać
Posty: 402
Rejestracja: ndz lis 28, 2004 9:17 pm
Kontakt:

Re: Skrypty PHP

Post autor: Asit »

szukaj.html

Kod: Zaznacz cały

<form method="POST" action="szukaj.php">
<input type="text" name="zapytanie" size="20">
<input type="submit" value="Szukaj" name="s1">
</form>
szukaj.php

Kod: Zaznacz cały

<?
if (isset($_POST["zapytanie"])) $zapytanie=strtolower($_POST["zapytanie"]);
								else $zapytanie="";

$zakazane_pliki=array("funkcje.php","hasla.php","szukaj.php");
$dozwolone_rozszerzenia=array("htm","html","php");

if ($zapytanie!="") {
	echo "Wyniki wyszukiwania frazy <b>$zapytanie</b>:<br>";
	przeszukuj(".",$zapytanie, $zakazane_pliki,$dozwolone_rozszerzenia);
}
	else echo "Nie wpisales zadnej frazy!";


function przeszukuj($nazwa_folderu,$zapytanie,$zakazane_pliki,$dozwolone_rozszerzenia)
{

	if (!isset($nazwa_folderu)) $nazwa_folderu=".";

	$folder=opendir($nazwa_folderu);
	
	while ($plik=readdir($folder))
	{
		if ((!in_array($plik, $zakazane_pliki)) && in_array(substr($plik,strrpos($plik,".")+1),$dozwolone_rozszerzenia))
	    	{
			$zawartosc=implode("",file($nazwa_folderu."/".$plik));
			$zawartosc2=strip_tags(strtolower($zawartosc));
			$pozycja=strpos($zawartosc2, $zapytanie);
			$start=strpos($zawartosc, "<title>")+7;
			$stop=strpos($zawartosc, "</title>");

			if ($start===false || $stop===false) 
				$tytul="brak tytułu strony";
			else 
				$tytul=substr($zawartosc,$start,($stop-$start));
			

			if ($pozycja!==false) 
			{
				echo "<a href=".$nazwa_folderu."/".$plik.">".$tytul."</a><br>";
			}
		}
		
		if ($plik!="." && $plik!=".." && is_dir($nazwa_folderu."/".$plik)) 
				przeszukuj($nazwa_folderu."/".$plik, $zapytanie, $zakazane_pliki, $dozwolone_rozszerzenia);
	}

	closedir($folder);
}

?>
powinno dzialac.. pozdrawiam
adi_mzh
Posty: 8
Rejestracja: ndz mar 20, 2005 10:23 pm

Re: Skrypty PHP

Post autor: adi_mzh »

Wielkie dzieki :) wszystko dziala. Tylko mam jedno pytanie, jak podłożyć jakiś obrazek zamiast ubttona (do lajałtu mi nie pasuje :). Hmmmm, jeszcze jedno - jak zrobić aby wyniki oraz znalezione podstrony (w moim wypadku pliki *.inc) nie otwierały się w pustym okne tylko aby je zaincludować do specjalnej ramki na stronce? :? Dzieki, pozdrawiam.
Asit
Zaczyna działać
Zaczyna działać
Posty: 402
Rejestracja: ndz lis 28, 2004 9:17 pm
Kontakt:

Re: Skrypty PHP

Post autor: Asit »

mozesz zrobic oddzielna strone taka jak wszystkie pozostale w ktorej umiescisz kod w odpowiednim miejscu i nawiesz ja jako szukaj.php
adi_mzh
Posty: 8
Rejestracja: ndz mar 20, 2005 10:23 pm

Re: Skrypty PHP

Post autor: adi_mzh »

wlasnie tak zrobiłem :), ale pojawił mi sie kolejny problem. Mianowicie: wynik wyszukiwania jest w formie odnosnika do pliku *inc czyli tego co normalnie ( nie przez wyszukiwarke ) go includuje do głownego pliku. Dało by sie to tak jakoś zrobić aby odnośniki nie otwierały znalezionych plików (*inc) tylko zeby includowały je do index.php zamiast zaincludowanego szukaj.php (Jeśli cós nie jasno mnie zrozumieliscie to dajcie znać. :)) dzieki i pozdrawiam
ODPOWIEDZ