Ein Search Engine für deine Web site mit PHP bilden

| by Rory Canyon | October 28, 2005
Dieses Hände auf PHP programmierenartikel liefert das Wissen, das notwendig ist, ein Search Engine für deine Web site mit PHP Version 4.0 zu entwerfen und zu entwickeln und oben. Ein Search Engine für deine Web site mit PHP zu bilden ist wirklich einfach und stellt die erhebliche Funktionalität zur verfügung, die durch die meisten vom kleinen zu den mittleren Web site erfordert wird. Dieser Artikel stellt jedes Schritte der Entwicklung, einschließlich Design und DIE PHP Programmierung vor. Grundlegende Computerfähigkeiten und Wissen der HTML Grundlagen wird angefordert. O.K., lassen Sie uns jetzt anfangen.

Schritt 1: Design-Suchkasten

Unter deiner Web site Wurzel eine Akte bilden, die search.htm genannt wird, oder alles, das du magst und tippen den folgenden Code ein:

<html>

<head>

<title>Web Search</title>

<meta http-equiv= " Inhalt-Art " content= " Text/HTML " >

</head>

<body bgcolor= " #FFFFFF " text= " #000000 " >

<form name= " form1 " method= " Pfosten " action= " search.php " >

<table width= " 100% " cellspacing= " 0 " cellpadding= " 0 " >

<tr>

<td width= " 36% " >

<div align= " Mitte " >

<input type= " Text " name= " Schlüsselwort " >

</div>

</td>

<td width= " 64% " >

<input type= " reichen " name= " einreichen " value= " Suche " > ein

</td>

</tr>

</table>

</form>

</body>

</html>

Schritt 2: Search.php Akte schreiben. Es ist der Kern deines Web site Search Engine.

Unter deiner Web site Wurzel eine Akte herstellen, die search.php genannt wird, oder alles, das du magst.

<? php

//get Schlüsselwörter

$keyword=trim ($_POST [„Schlüsselwort“]);

//check, wenn das Schlüsselwort leer ist

wenn ($keyword== "") {

" keine Schlüsselwörter " widerhallen;

Ausgang;

}

?>

Mit oben kannst du Tips geben deinen Benutzern, wenn sie vergessen, ein Schlüsselwort einzutragen. Lassen Sie uns alle Akten oder Artikel in deiner Web site jetzt durchlaufen.

<? php

Funktion listFiles ($dir) {

$handle=opendir ($dir);

während (falsch! == ($file=readdir ($handle))){

wenn ($file! = ". „&&$file! =“. “) {

//if ist es ein Verzeichnis, fortfährt dann

wenn (is_dir („$dir/$file“)){

listFiles („$dir/$file“);

}

sonst {

//process hier suchen mit dem folgenden PHP Index

}

}

}

}

?>

Die folgenden Indexe lesen, Prozeßakten und überprüfung, ob die Akten $keyword enthalten. Wenn $keyword in der Akte gefunden wird, wird die Akte Adresse in einer Kleidenart Variable gespeichert.

<? php

Funktion listFiles ($dir, $keyword, &$array) {

$handle=opendir ($dir);

während (falsch! == ($file=readdir ($handle))){

wenn ($file! = ". „&&$file! =“. “) {

wenn (is_dir („$dir/$file“)){

listFiles („$dir/$file“, $keyword, $array);

}

sonst {

//read Akte

$data=fread (fopen („$dir/$file“, „r“), filesize („$dir/$file“));

//avoid Suche search.php selbst

wenn ($file! = " search.php ") {

//contain Schlüsselwort?

wenn (eregi („$keyword“, $data)){

$array [] = " $dir/$file ";

}

}

}

}

}

}

//define Reihe $array

$array=array ();

//execute Funktion

listFiles („. “, „php“, $array);

//echo/print Suchresultate

foreach ($array als $value) {

Echo „$value“. „<br> n“;

}

?>

Jetzt die Programme kombinieren, die oben verzeichnet werden, findest du alle in Verbindung stehenden Resultate in deinen Web site wirst gefunden und verzeichnet. Eine weitere Optimierung des Search Engine kann genommen werden, indem man das folgende addiert,

1, verzeichnen den Titel allen suchenden Resultaten

DAS FOLGENDE ERSETZEN

wenn (eregi („$keyword“, $data)){

$array [] = " $dir/$file ";

}

MIT

wenn (eregi („$keyword“, $data)){

wenn (eregi („<title> (. +)

</title> ", $data, $m)){

$title=$m [„1“];

}

sonst {

$title= " kein Titel ";

}

$array [] = " $dir/$file $title ";

}

2, fügen Verbindungen dem Suchen von Resultaten hinzu

DAS FOLGENDE ÄNDERN

foreach ($array als $value) {

Echo „$value“. „<br> n“;

}

ZU

foreach ($array als $value) {

($filedir, $title) =split („[]“, $value, „2“ verzeichnen);

„<a href=$filedir>$value</a>“ widerhallen. „<br> n“;

}

Gesetzte 3 Grenzzeit für PHP Durchführung

DAS FOLGENDE AM ANFANG DER PHP AKTEN HINZUFÜGEN

set_time_limit („600“);

Die oben genannte Maßeinheit ist second&#65292; so 10 Minuten ist das litmit.

Jetzt alle oben genannten Programme kombinieren und die komplette search.php Akte erhalten, wie folgend,

<? php

set_time_limit („600“);

$keyword=trim ($_POST [„Schlüsselwort“]);

wenn ($keyword== "") {

Echo " tragen bitte dein Schlüsselwort " ein;

Ausgang;

}

Funktion listFiles ($dir, $keyword, &$array) {

$handle=opendir ($dir);

während (falsch! == ($file=readdir ($handle))){

wenn ($file! = ". „&&$file! =“. “) {

wenn (is_dir („$dir/$file“)){

listFiles („$dir/$file“, $keyword, $array);

}

sonst {

$data=fread (fopen („$dir/$file“, „r“), filesize („$dir/$file“));

wenn (eregi („<body ([^>] +) > (. +) </body>“, $data, $b)){

$body=strip_tags ($b [„2“]);

}

sonst {

$body=strip_tags ($data);

}

wenn ($file! = " search.php ") {

wenn (eregi („$keyword“, $body)){

wenn (eregi („<title> (. +) </title>“, $data, $m)){

$title=$m [„1“];

}

sonst {

$title= " kein Titel ";

}

$array [] = " $dir/$file $title ";

}

}

}

}

}

}

$array=array ();

listFiles („. “, „$keyword“, $array);

foreach ($array als $value) {

($filedir, $title) =split („[]“, $value, „2“ verzeichnen);

„<a href=$filedir target=_blank>$title </a>“ widerhallen. „<br> n“;

}

?>

Jetzt hast du ein Search Engine für deine Web site, genießt sie gebildet!

Article Source: http://www.articleset.com



About the Author

Rory Canyon is the founder of ScriptMenu.com, a free web directory for PHP, ASP, ASP.NET, PERL, XML, Java, JavaScript, Flash, CFML, Python and other web programming resources.

For more information, visit http://www.scriptmenu.com » Read more articles by Rory Canyon
You are welcome to publish or reprint this article free of charge, provided: