Alternatywna wyszukiwarka internetowa PHP + MySQL
: 23 lipca 2007, 18:39
Witam wszystkich. Co prawda nie całkiem potrzebuje pomocy ale chyba niema lepszego miejsca na zamieszczenie tego. Po informacjach o braku prywatności na wyszukiwarkach internetowych odkurzyłem stary pomysł. Wkopiuje tu kod dwóch plików które razem pozwalają utworzyć wyszukiwarkę. Z czasem zamierzam zrobić poprawki i usprawnić to. Tymczasem zapraszam wszystkich znających się na rzeczy do zabawy z tym kodem. Obecnie poszerzam już posiadaną bazę danych stron.Może ktoś posiadający taką możliwość uruchomi nową wyszukiwarkę, poprawianą i rozszerzaną przez wszystkich chętnych...
Kod: Zaznacz cały
<?php
/*TINY web searcher by Demerzel
Jest to prosta przeglądarka bazy MySQL która działa jak wyszukiwarka internetowa. każdy może w dowolny sposób modyfikować kopiować i wykorzystywać ten kod, pod warunkiem pozostawienia powyższej informacji w niezmienionej formie.
*/
$str = <<< EOP
<HTML>
<HEAD>
<TITLE>TINY web searcher</TITLE>
<meta="Content-type" content="text/html; charset=iso-8859-2">
</HEAD>
<BODY>
<div align="center">
<H1>TINY web searcher</H1>
<FORM ACTION="przegladarka.php" method="POST">
<input type="text" size="50" name="haslo" value="">
<input type="submit" value="poszukaj">
</FORM>
</div>
</BODY>
</HTML>
EOP;
echo $str;
if(isset($_POST['haslo']))//Jeżeli użytkownik podał już słowa do wyszukania
{
$sql_conn = mysql_connect('localhost', 'root', '');//łączenie z mysql
$haslo=trim($_POST['haslo']);//ucieńcie początkowej i końcowej spacji
if (strpos($haslo, " ")==True){//czy spacja między wyrazami
$i=0;//zmienne pomocnicze do pentli
$j=0;
do{
$temp1[$j].=$haslo[$i];//przepisanie hasła do tablicy po wyrazie
$i++;
if($haslo[$i]==" "){ $i++; $j++;}//jeżeli użytkownik rozdzielił wyrazy spacj¹ następny wyraz wpisany zostaje do kolejnego pola tablicy
}while($haslo[$i]!=FALSE);//koniec przepisywania
}
else $temp1[0]=$haslo;//utworzenie tablicy temp1 jeżeli jedno słowo
mysql_select_db('find');//wybranie bazy danych
echo '<table>'; //początek tablicy
foreach($temp1 as $key => $value)//pobranie kolejno wszystkich wyrazów
{
$wyraz='\'%'.$value.'%\'';//forma wymagana do zapytania SQL
$zapytanie = mysql_query("SELECT * FROM adres WHERE slowa LIKE $wyraz"); //Zapytanie SQL
while ($wiersz = mysql_fetch_row($zapytanie))// wiersz[0]=link wiersz[1]=słowa kluczowe
{
$link='http://'.$wiersz[0];
echo "<tr><td>[b]<a href=$link>". $wiersz[0] .'</a>[/b]</td></tr>';
echo '<tr><td>'. $wiersz[1] .'</td></tr>';
}
}
echo '</table>';//koniec tablicy
mysql_close($sql_conn);//zamknięcie poł¹czenia z baz¹ danych
}
?>
Kod: Zaznacz cały
<?PHP
*/ Robo by Demerzel.
Jest to bardzo prosta ale skuteczna metoda wyszukiwania i zapisywania stron internetowych do bazy danych.
Wykonane s¹ następuj¹ce kroki:
-Generowanie ci¹gu do sprawdzenia jako adres www
-Wczytanie storny jeżeli taka istnieje
-Wyszukanie Słów kluczowych z mety
-Zapis do bazy danych
Litera w na końcu niektórych zmiennych oznacza jedynie iż są one wykorzystane wewnątrz funkcji
Każdy może w dowolny sposób modyfikować kopiować i wykorzystywać ten kod, pod warunkiem pozostawienia powyższej informacji w niezmienionej formie.
*/
function katalog($adresw){
$trescw= file_get_contents($adresw);
//if(!$trescw) echo'Niema takiej strony
');
if (strpos($trescw, 'Keywords')!=FALSE){
$pozw= strpos($trescw, 'Keywords');
do{
$pozw++;
if( $trescw[$pozw]=='"') $iw++;
}while($iw<2);
$pozw++;
do
{
$kluczew.=$trescw[$pozw];
$pozw++;
}
while($trescw[$pozw]!='"');
// echo $kluczew .'
';
//echo $adresw .'
';
$sql_conn = mysql_connect('localhost', 'root', '');//łączenie z mysql
mysql_select_db('find',$sql_conn);
$wpis="INSERT INTO adres (link,slowa) VALUES('$adresw','$kluczew')";
mysql_query($wpis);
mysql_close($sql_conn);
$wpis="";
$kluczw="";
$adresw="";
}
}
$litery = array(a,b,c,d,e,f,g,h,i,j,k,l,ł,m,n,o,p,r,s,t,u,w,y,z);
$prefix = "http://www.";
$postfix = ".pl";
$i=0;
$j=0;
$k=0;
$temp="";
foreach( $litery as $key => $value)
{ echo '<H1>BEGINING</H1>';
$ciag=$value;
$adres=$prefix.$ciag.$postfix;
katalog($adres);
foreach( $litery as $key2 => $value2)
{ $ciag2=$ciag;
$ciag2.=$value2;
$adres=$prefix.$ciag2.$postfix;
katalog($adres);
foreach( $litery as $key3 => $value3)
{
$ciag3=$ciag2;
$ciag3.=$value3;
$adres=$prefix.$ciag3.$postfix;
katalog($adres);
foreach( $litery as $key4 => $value4)
{
$ciag4=$ciag3;
$ciag4.=$value4;
$adres=$prefix.$ciag4.$postfix;
katalog($adres);
}
}
}
}
?>