Faire un Search Engine pour votre site Web avec PHP
| by Rory Canyon | October 28, 2005
Ceci des mains sur l'article de programmation de PHP fournit la connaissance nécessaire pour concevoir et développer un Search Engine pour votre site Web en utilisant la version 4.0 de PHP et en haut. La fabrication d'un Search Engine pour votre site Web avec PHP est vraiment facile et fournit la fonctionnalité substantielle exigée par la plupart des sites Web petits à moyens. Cet article présente chaque des étapes du développement, y compris la conception et la programmation de PHP. Des qualifications d'ordinateur et la connaissance de base des principes fondamentaux de HTML sont exigées. L'ok, commençons maintenant.
Étape 1 : Boîte de recherche de conception
Sous votre racine de site Web, faire un dossier appelé search.htm ou quelque chose que vous aimez et saisissent le code suivant :
<html>
<head>
<title>Web Search</title>
http-equiv= " Contenu-Type " content= " texte/HTML " de <meta >
</head>
text= <body " #000000 " de " #FFFFFF " de bgcolor= >
action= " search.php " de " poteau " de method= du name= " form1 " de <form >
width= <table " 100% " cellspacing= " 0 " cellpadding= " 0 " >
<tr>
width= " 36% " de <td >
align= " centre " de <div >
name= " mot-clé " des " textes " de type= de <input >
</div>
</td>
width= " 64% " de <td >
le type= de <input " soumettent " le name= " soumettent " le value= " recherche " >
</td>
</tr>
</table>
</form>
</body>
</html>
Étape 2 : Écrire le dossier de search.php. C'est le noyau de votre Search Engine de site Web.
Sous votre racine de site Web, créer un dossier appelé le search.php ou quelque chose que vous aimez.
< ? php
mots-clés de //get
$keyword=trim ($_POST [« mot-clé »]) ;
//check si le mot-clé est vide
si ("" de $keyword==) {
ne faire écho " aucun mot-clé " ;
sortie ;
}
?>
Avec en haut, vous pouvez donner des conseils à vos utilisateurs quand il oublie d'écrire un mot-clé. Maintenant passons par tous dossiers ou articles dans votre site Web.
< ? php
listFiles de fonction ($dir) {
$handle=opendir ($dir) ;
tandis que (faux ! == ($file=readdir ($handle))){
si ($file ! = ". « &&$file ! = ». ») {
//if c'est un annuaire, continuent alors
si (is_dir (« $dir/$file »)){
listFiles (« $dir/$file ») ;
}
autrement {
//process la recherche ici avec le manuscrit suivant de PHP
}
}
}
}
?>
Les manuscrits suivants lisent, les dossiers et le contrôle de processus si les dossiers contiennent $keyword. Si $keyword est trouvé dans le dossier, l'adresse de dossier sera sauvée dans un ranger-type variable.
< ? php
listFiles de fonction ($dir, $keyword, &$array) {
$handle=opendir ($dir) ;
tandis que (faux ! == ($file=readdir ($handle))){
si ($file ! = ". « &&$file ! = ». ») {
si (is_dir (« $dir/$file »)){
listFiles (« $dir/$file », $keyword, $array) ;
}
autrement {
dossier de //read
$data=fread (fopen (« $dir/$file », « r »), filesize (« $dir/$file »));
recherche search.php lui-même de //avoid
si ($file ! = " search.php ") {
mot-clé de //contain ?
si (eregi (« $keyword », $data)){
$array [] = " $dir/$file " ;
}
}
}
}
}
}
rangée $array de //define
$array=array () ;
fonction de //execute
listFiles (« . », « php », $array) ;
résultats de recherche de //echo/print
foreach ($array comme $value) {
écho « $value ». « <br> n » ;
}
?>
Maintenant, combiner les programmes énumérés ci-dessus, vous trouverez tous résultats relatifs dans vos sites Web serez trouvés et énumérés. Une autre optimisation du Search Engine peut être prise en ajoutant le suivant,
1, énumèrent le titre de tous les résultats de recherche
REMPLACER LE SUIVANT
si (eregi (« $keyword », $data)){
$array [] = " $dir/$file " ;
}
AVEC
si (eregi (« $keyword », $data)){
si (eregi (« <title> (. +)
</title> ", $data, $m)){
$title=$m [« 1 »] ;
}
autrement {
$title= " aucun titre " ;
}
$array [] = " $dir/$file $title " ;
}
2, ajoutent des liens à rechercher des résultats
CHANGER LE SUIVANT
foreach ($array comme $value) {
écho « $value ». « <br> n » ;
}
À
foreach ($array comme $value) {
énumérer ($filedir, $title) le =split (« [] », $value, « 2 ») ;
faire écho le « <a href=$filedir>$value</a> ». « <br> n » ;
}
Délai 3 réglé pour l'exécution de PHP
AJOUTER LE SUIVANT AU DÉBUT DES DOSSIERS DE PHP
set_time_limit (« 600 ») ;
L'unité ci-dessus est second, ; tellement dix minutes est le litmit.
Maintenant, combiner tous programmes ci-dessus et obtenir le dossier complet de search.php comme en suivant,
< ? php
set_time_limit (« 600 ») ;
$keyword=trim ($_POST [« mot-clé »]) ;
si ("" de $keyword==) {
l'écho " écrivent svp votre mot-clé " ;
sortie ;
}
listFiles de fonction ($dir, $keyword, &$array) {
$handle=opendir ($dir) ;
tandis que (faux ! == ($file=readdir ($handle))){
si ($file ! = ". « &&$file ! = ». ») {
si (is_dir (« $dir/$file »)){
listFiles (« $dir/$file », $keyword, $array) ;
}
autrement {
$data=fread (fopen (« $dir/$file », « r »), filesize (« $dir/$file »));
si (eregi (« <body ([^>] +) > (. +) </body> », $data, $b)){
$body=strip_tags ($b [« 2 »]) ;
}
autrement {
$body=strip_tags ($data) ;
}
si ($file ! = " search.php ") {
si (eregi (« $keyword », $body)){
si (eregi (« <title> (. +) </title> », $data, $m)){
$title=$m [« 1 »] ;
}
autrement {
$title= " aucun titre " ;
}
$array [] = " $dir/$file $title " ;
}
}
}
}
}
}
$array=array () ;
listFiles (« . », « $keyword », $array) ;
foreach ($array comme $value) {
énumérer ($filedir, $title) le =split (« [] », $value, « 2 ») ;
faire écho le « <a href=$filedir target=_blank>$title </a> ». « <br> n » ;
}
?>
Maintenant, vous avez fait un Search Engine pour votre site Web, l'appréciez !
Étape 1 : Boîte de recherche de conception
Sous votre racine de site Web, faire un dossier appelé search.htm ou quelque chose que vous aimez et saisissent le code suivant :
<html>
<head>
<title>Web Search</title>
http-equiv= " Contenu-Type " content= " texte/HTML " de <meta >
</head>
text= <body " #000000 " de " #FFFFFF " de bgcolor= >
action= " search.php " de " poteau " de method= du name= " form1 " de <form >
width= <table " 100% " cellspacing= " 0 " cellpadding= " 0 " >
<tr>
width= " 36% " de <td >
align= " centre " de <div >
name= " mot-clé " des " textes " de type= de <input >
</div>
</td>
width= " 64% " de <td >
le type= de <input " soumettent " le name= " soumettent " le value= " recherche " >
</td>
</tr>
</table>
</form>
</body>
</html>
Étape 2 : Écrire le dossier de search.php. C'est le noyau de votre Search Engine de site Web.
Sous votre racine de site Web, créer un dossier appelé le search.php ou quelque chose que vous aimez.
< ? php
mots-clés de //get
$keyword=trim ($_POST [« mot-clé »]) ;
//check si le mot-clé est vide
si ("" de $keyword==) {
ne faire écho " aucun mot-clé " ;
sortie ;
}
?>
Avec en haut, vous pouvez donner des conseils à vos utilisateurs quand il oublie d'écrire un mot-clé. Maintenant passons par tous dossiers ou articles dans votre site Web.
< ? php
listFiles de fonction ($dir) {
$handle=opendir ($dir) ;
tandis que (faux ! == ($file=readdir ($handle))){
si ($file ! = ". « &&$file ! = ». ») {
//if c'est un annuaire, continuent alors
si (is_dir (« $dir/$file »)){
listFiles (« $dir/$file ») ;
}
autrement {
//process la recherche ici avec le manuscrit suivant de PHP
}
}
}
}
?>
Les manuscrits suivants lisent, les dossiers et le contrôle de processus si les dossiers contiennent $keyword. Si $keyword est trouvé dans le dossier, l'adresse de dossier sera sauvée dans un ranger-type variable.
< ? php
listFiles de fonction ($dir, $keyword, &$array) {
$handle=opendir ($dir) ;
tandis que (faux ! == ($file=readdir ($handle))){
si ($file ! = ". « &&$file ! = ». ») {
si (is_dir (« $dir/$file »)){
listFiles (« $dir/$file », $keyword, $array) ;
}
autrement {
dossier de //read
$data=fread (fopen (« $dir/$file », « r »), filesize (« $dir/$file »));
recherche search.php lui-même de //avoid
si ($file ! = " search.php ") {
mot-clé de //contain ?
si (eregi (« $keyword », $data)){
$array [] = " $dir/$file " ;
}
}
}
}
}
}
rangée $array de //define
$array=array () ;
fonction de //execute
listFiles (« . », « php », $array) ;
résultats de recherche de //echo/print
foreach ($array comme $value) {
écho « $value ». « <br> n » ;
}
?>
Maintenant, combiner les programmes énumérés ci-dessus, vous trouverez tous résultats relatifs dans vos sites Web serez trouvés et énumérés. Une autre optimisation du Search Engine peut être prise en ajoutant le suivant,
1, énumèrent le titre de tous les résultats de recherche
REMPLACER LE SUIVANT
si (eregi (« $keyword », $data)){
$array [] = " $dir/$file " ;
}
AVEC
si (eregi (« $keyword », $data)){
si (eregi (« <title> (. +)
</title> ", $data, $m)){
$title=$m [« 1 »] ;
}
autrement {
$title= " aucun titre " ;
}
$array [] = " $dir/$file $title " ;
}
2, ajoutent des liens à rechercher des résultats
CHANGER LE SUIVANT
foreach ($array comme $value) {
écho « $value ». « <br> n » ;
}
À
foreach ($array comme $value) {
énumérer ($filedir, $title) le =split (« [] », $value, « 2 ») ;
faire écho le « <a href=$filedir>$value</a> ». « <br> n » ;
}
Délai 3 réglé pour l'exécution de PHP
AJOUTER LE SUIVANT AU DÉBUT DES DOSSIERS DE PHP
set_time_limit (« 600 ») ;
L'unité ci-dessus est second, ; tellement dix minutes est le litmit.
Maintenant, combiner tous programmes ci-dessus et obtenir le dossier complet de search.php comme en suivant,
< ? php
set_time_limit (« 600 ») ;
$keyword=trim ($_POST [« mot-clé »]) ;
si ("" de $keyword==) {
l'écho " écrivent svp votre mot-clé " ;
sortie ;
}
listFiles de fonction ($dir, $keyword, &$array) {
$handle=opendir ($dir) ;
tandis que (faux ! == ($file=readdir ($handle))){
si ($file ! = ". « &&$file ! = ». ») {
si (is_dir (« $dir/$file »)){
listFiles (« $dir/$file », $keyword, $array) ;
}
autrement {
$data=fread (fopen (« $dir/$file », « r »), filesize (« $dir/$file »));
si (eregi (« <body ([^>] +) > (. +) </body> », $data, $b)){
$body=strip_tags ($b [« 2 »]) ;
}
autrement {
$body=strip_tags ($data) ;
}
si ($file ! = " search.php ") {
si (eregi (« $keyword », $body)){
si (eregi (« <title> (. +) </title> », $data, $m)){
$title=$m [« 1 »] ;
}
autrement {
$title= " aucun titre " ;
}
$array [] = " $dir/$file $title " ;
}
}
}
}
}
}
$array=array () ;
listFiles (« . », « $keyword », $array) ;
foreach ($array comme $value) {
énumérer ($filedir, $title) le =split (« [] », $value, « 2 ») ;
faire écho le « <a href=$filedir target=_blank>$title </a> ». « <br> n » ;
}
?>
Maintenant, vous avez fait un Search Engine pour votre site Web, l'appréciez !
Article Source: http://www.articleset.com

You are welcome to publish or reprint this article free of charge, provided:
- you include the entire article, unchanged, including the "About The Author" box
- all hyperlinks remain active, including the bottom ArticleSet.com link (does not apply to print publications)
- you agree not to hold the authors nor ArticleSet.com liable for any loss profits, expenses, or any other damages resulting from the use or misuse of articles published on this website