Fare un Search Engine per il vostro Web site con PHP
| by Rory Canyon | October 28, 2005
Ciò mani sull'articolo di programmazione di PHP fornisce la conoscenza necessaria per progettare e sviluppare un Search Engine per il vostro Web site usando la versione 4.0 di PHP e sopra. Fare un Search Engine per il vostro Web site con PHP è realmente facile e fornisce la funzionalità notevole richiesta da la maggior parte dei Web site piccoli-medi. Questo articolo introduce ogni i punti dello sviluppo, compreso sia il disegno che la programmazione di PHP. Le abilità del calcolatore e la conoscenza di base dei fondamenti del HTML sono richieste. L'approvazione, cominciamo ora.
Punto 1: Scatola di ricerca di disegno
Sotto la vostra radice di Web site, fare una lima denominata search.htm o qualche cosa che gradiate e scrive dentro il seguente codice a macchina:
<html>
<head>
<title>Web Search</title>
http-equiv= " Soddisfare-Tipo " content= " testo/HTML " di <meta >
</head>
text= <body " #000000 " " del #FFFFFF " del bgcolor= >
action= " search.php " " dell'alberino " " del method= del name= " form1 del <form >
width= <table " 100% " cellspacing= " 0 " cellpadding= " 0 " >
<tr>
width= " 36% " del <td >
align= " centro " del <div >
name= " parola chiave " " del testo " del type= del <input >
</div>
</td>
width= " 64% " del <td >
il type= del <input " presenta " il name= " presenta " il value= " ricerca " >
</td>
</tr>
</table>
</form>
</body>
</html>
Punto 2: Scrivere la lima di search.php. È il nucleo del vostro Search Engine di Web site.
Sotto la vostra radice di Web site, generare una lima denominata search.php o qualche cosa che gradiate.
<? php
parole chiavi di //get
$keyword=trim ($_POST [“parola chiave„]);
//check se la parola chiave è vuota
se ("" di $keyword==) {
non echeggiare " parole chiavi ";
uscita;
}
?>
Con sopra, potete dare i suggerimenti ai vostri utenti quando si dimenticano di entrare in una parola chiave. Ora passiamo attraverso tutti i lime o articoli nel vostro Web site.
<? php
listFiles di funzione ($dir) {
$handle=opendir ($dir);
mentre (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =„. „) {
//if è un indice, allora continua
se (is_dir (“$dir/$file„)){
listFiles (“$dir/$file„);
}
altrimenti {
//process la ricerca qui con lo scritto seguente di PHP
}
}
}
}
?>
I seguenti scritti leggono, lime e controllo trattati se le lime contengono $keyword. Se $keyword è trovato nella lima, l'indirizzo della lima sarà conservato in un alline-tipo variabile.
<? php
listFiles di funzione ($dir, $keyword, &$array) {
$handle=opendir ($dir);
mentre (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =„. „) {
se (is_dir (“$dir/$file„)){
listFiles (“$dir/$file„, $keyword, $array);
}
altrimenti {
lima di //read
$data=fread (fopen (“$dir/$file„, “r„), filesize (“$dir/$file„));
ricerca search.php in se di //avoid
se ($file! = " search.php ") {
parola chiave di //contain?
se (eregi (“$keyword„, $data)){
$array [] = " $dir/$file ";
}
}
}
}
}
}
allineamento $array di //define
$array=array ();
funzione di //execute
listFiles (“. „, “php„, $array);
risultati di ricerca di //echo/print
foreach ($array come $value) {
eco “$value„. “<br> n„;
}
?>
Ora, unire i programmi elencati sopra, troverete tutti i risultati relativi nei vostri Web site sarete trovati ed elencati. Un'ottimizzazione ulteriore del Search Engine può essere presa aggiungendo quanto segue,
1, elenca il titolo di tutti i risultati di ricerca
SOSTITUIRE QUANTO SEGUE
se (eregi (“$keyword„, $data)){
$array [] = " $dir/$file ";
}
CON
se (eregi (“$keyword„, $data)){
se (eregi (“<title> (. +)
</title> ", $data, $m)){
$title=$m [“1„];
}
altrimenti {
$title= " nessun titolo ";
}
$array [] = " $dir/$file $title ";
}
2, aggiungono i collegamenti a cercare i risultati
CAMBIARE QUANTO SEGUE
foreach ($array come $value) {
eco “$value„. “<br> n„;
}
A
foreach ($array come $value) {
elencare ($filedir, $title) il =split (“[]„, $value, “2„);
echeggiare “il <a href=$filedir>$value</a>„. “<br> n„;
}
Scadenza stabilita 3 per l'esecuzione di PHP
AGGIUNGERE QUANTO SEGUE ALL'INIZIO DELLE LIME DI PHP
set_time_limit (“600„);
La suddetta unità è second, così dieci minuti è il litmit.
Ora, unire tutti i suddetti programmi ed ottenere la lima completa di search.php come seguendo,
<? php
set_time_limit (“600„);
$keyword=trim ($_POST [“parola chiave„]);
se ("" di $keyword==) {
l'eco " entra prego nella vostra parola chiave ";
uscita;
}
listFiles di funzione ($dir, $keyword, &$array) {
$handle=opendir ($dir);
mentre (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =„. „) {
se (is_dir (“$dir/$file„)){
listFiles (“$dir/$file„, $keyword, $array);
}
altrimenti {
$data=fread (fopen (“$dir/$file„, “r„), filesize (“$dir/$file„));
se (eregi (“<body ([^>] +) > (. +) </body>„, $data, $b)){
$body=strip_tags ($b [“2„]);
}
altrimenti {
$body=strip_tags ($data);
}
se ($file! = " search.php ") {
se (eregi (“$keyword„, $body)){
se (eregi (“<title> (. +) </title>„, $data, $m)){
$title=$m [“1„];
}
altrimenti {
$title= " nessun titolo ";
}
$array [] = " $dir/$file $title ";
}
}
}
}
}
}
$array=array ();
listFiles (“. „, “$keyword„, $array);
foreach ($array come $value) {
elencare ($filedir, $title) il =split (“[]„, $value, “2„);
echeggiare “il <a href=$filedir target=_blank>$title </a>„. “<br> n„;
}
?>
Ora, avete fatto un Search Engine per il vostro Web site, lo godete!
Punto 1: Scatola di ricerca di disegno
Sotto la vostra radice di Web site, fare una lima denominata search.htm o qualche cosa che gradiate e scrive dentro il seguente codice a macchina:
<html>
<head>
<title>Web Search</title>
http-equiv= " Soddisfare-Tipo " content= " testo/HTML " di <meta >
</head>
text= <body " #000000 " " del #FFFFFF " del bgcolor= >
action= " search.php " " dell'alberino " " del method= del name= " form1 del <form >
width= <table " 100% " cellspacing= " 0 " cellpadding= " 0 " >
<tr>
width= " 36% " del <td >
align= " centro " del <div >
name= " parola chiave " " del testo " del type= del <input >
</div>
</td>
width= " 64% " del <td >
il type= del <input " presenta " il name= " presenta " il value= " ricerca " >
</td>
</tr>
</table>
</form>
</body>
</html>
Punto 2: Scrivere la lima di search.php. È il nucleo del vostro Search Engine di Web site.
Sotto la vostra radice di Web site, generare una lima denominata search.php o qualche cosa che gradiate.
<? php
parole chiavi di //get
$keyword=trim ($_POST [“parola chiave„]);
//check se la parola chiave è vuota
se ("" di $keyword==) {
non echeggiare " parole chiavi ";
uscita;
}
?>
Con sopra, potete dare i suggerimenti ai vostri utenti quando si dimenticano di entrare in una parola chiave. Ora passiamo attraverso tutti i lime o articoli nel vostro Web site.
<? php
listFiles di funzione ($dir) {
$handle=opendir ($dir);
mentre (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =„. „) {
//if è un indice, allora continua
se (is_dir (“$dir/$file„)){
listFiles (“$dir/$file„);
}
altrimenti {
//process la ricerca qui con lo scritto seguente di PHP
}
}
}
}
?>
I seguenti scritti leggono, lime e controllo trattati se le lime contengono $keyword. Se $keyword è trovato nella lima, l'indirizzo della lima sarà conservato in un alline-tipo variabile.
<? php
listFiles di funzione ($dir, $keyword, &$array) {
$handle=opendir ($dir);
mentre (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =„. „) {
se (is_dir (“$dir/$file„)){
listFiles (“$dir/$file„, $keyword, $array);
}
altrimenti {
lima di //read
$data=fread (fopen (“$dir/$file„, “r„), filesize (“$dir/$file„));
ricerca search.php in se di //avoid
se ($file! = " search.php ") {
parola chiave di //contain?
se (eregi (“$keyword„, $data)){
$array [] = " $dir/$file ";
}
}
}
}
}
}
allineamento $array di //define
$array=array ();
funzione di //execute
listFiles (“. „, “php„, $array);
risultati di ricerca di //echo/print
foreach ($array come $value) {
eco “$value„. “<br> n„;
}
?>
Ora, unire i programmi elencati sopra, troverete tutti i risultati relativi nei vostri Web site sarete trovati ed elencati. Un'ottimizzazione ulteriore del Search Engine può essere presa aggiungendo quanto segue,
1, elenca il titolo di tutti i risultati di ricerca
SOSTITUIRE QUANTO SEGUE
se (eregi (“$keyword„, $data)){
$array [] = " $dir/$file ";
}
CON
se (eregi (“$keyword„, $data)){
se (eregi (“<title> (. +)
</title> ", $data, $m)){
$title=$m [“1„];
}
altrimenti {
$title= " nessun titolo ";
}
$array [] = " $dir/$file $title ";
}
2, aggiungono i collegamenti a cercare i risultati
CAMBIARE QUANTO SEGUE
foreach ($array come $value) {
eco “$value„. “<br> n„;
}
A
foreach ($array come $value) {
elencare ($filedir, $title) il =split (“[]„, $value, “2„);
echeggiare “il <a href=$filedir>$value</a>„. “<br> n„;
}
Scadenza stabilita 3 per l'esecuzione di PHP
AGGIUNGERE QUANTO SEGUE ALL'INIZIO DELLE LIME DI PHP
set_time_limit (“600„);
La suddetta unità è second, così dieci minuti è il litmit.
Ora, unire tutti i suddetti programmi ed ottenere la lima completa di search.php come seguendo,
<? php
set_time_limit (“600„);
$keyword=trim ($_POST [“parola chiave„]);
se ("" di $keyword==) {
l'eco " entra prego nella vostra parola chiave ";
uscita;
}
listFiles di funzione ($dir, $keyword, &$array) {
$handle=opendir ($dir);
mentre (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =„. „) {
se (is_dir (“$dir/$file„)){
listFiles (“$dir/$file„, $keyword, $array);
}
altrimenti {
$data=fread (fopen (“$dir/$file„, “r„), filesize (“$dir/$file„));
se (eregi (“<body ([^>] +) > (. +) </body>„, $data, $b)){
$body=strip_tags ($b [“2„]);
}
altrimenti {
$body=strip_tags ($data);
}
se ($file! = " search.php ") {
se (eregi (“$keyword„, $body)){
se (eregi (“<title> (. +) </title>„, $data, $m)){
$title=$m [“1„];
}
altrimenti {
$title= " nessun titolo ";
}
$array [] = " $dir/$file $title ";
}
}
}
}
}
}
$array=array ();
listFiles (“. „, “$keyword„, $array);
foreach ($array come $value) {
elencare ($filedir, $title) il =split (“[]„, $value, “2„);
echeggiare “il <a href=$filedir target=_blank>$title </a>„. “<br> n„;
}
?>
Ora, avete fatto un Search Engine per il vostro Web site, lo godete!
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