Fazer um Search Engine para seu Web site com PHP
| by Rory Canyon | October 28, 2005
Isto as mãos no artigo de programação de PHP fornece o conhecimento necessário projetar e desenvolver um Search Engine para seu Web site usando a versão 4.0 de PHP e acima. Fazer um Search Engine para seu Web site com PHP é realmente fácil e fornece a funcionalidade substancial requerida por a maioria do pequeno aos Web site médios. Este artigo introduz cada etapas do desenvolvimento, including o projeto e a programação de PHP. As habilidades do computador e o conhecimento básicos de fundamentos do HTML são requeridos. A aprovação, vamos começar agora.
Etapa 1: Caixa da busca do projeto
Sob sua raiz do Web site, fazer uma lima chamada search.htm ou qualquer coisa que você gosta e datilografa dentro o seguinte código:
<html>
<head>
<title>Web Search</title>
http-equiv= " Índice-Tipo " content= " texto do <meta/HTML " >
</head>
text= <body " #000000 " do " #FFFFFF " do bgcolor= >
action= " search.php " do " borne " " do method= do name= " form1 do <form >
width= <table " 100% " cellspacing= " 0 " cellpadding= " 0 " >
<tr>
width= " 36% " do <td >
align= " centro " do <div >
name= " keyword " do " texto " do type= do <input >
</div>
</td>
width= " 64% " do <td >
o type= do <input " submete " o name= " submete " o value= " busca " >
</td>
</tr>
</table>
</form>
</body>
</html>
Etapa 2: Escrever a lima de search.php. É o núcleo de seu Search Engine do Web site.
Sob sua raiz do Web site, criar uma lima chamada search.php ou qualquer coisa que você gosta.
<? php
keywords de //get
$keyword=trim ($_POST [“keyword”]);
//check se o keyword estiver vazio
se ("" de $keyword==) {
não ecoar " nenhum keywords ";
saída;
}
?>
Com acima, você pode dar sugestões a seus usuários quando se esquecem de incorporar um keyword. Agora vamos atravessar todas as limas ou artigos em seu Web site.
<? php
listFiles da função ($dir) {
$handle=opendir ($dir);
quando (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =”. ”) {
//if é um diretório, continua então
se (is_dir (“$dir/$file”)){
listFiles (“$dir/$file”);
}
mais {
//process procurarar aqui com o seguinte certificado de PHP
}
}
}
}
?>
Os seguintes certificados lêem, limas e verificação process se as limas contêm $keyword. Se $keyword for encontrado na lima, o endereço da lima estará conservado em um po-tipo variável.
<? php
listFiles da função ($dir, $keyword, &$array) {
$handle=opendir ($dir);
quando (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =”. ”) {
se (is_dir (“$dir/$file”)){
listFiles (“$dir/$file”, $keyword, $array);
}
mais {
lima de //read
$data=fread (fopen (“$dir/$file”, “r”), filesize (“$dir/$file”));
busca search.php próprio de //avoid
se ($file! = " search.php ") {
keyword de //contain?
se (eregi (“$keyword”, $data)){
$array [] = " $dir/$file ";
}
}
}
}
}
}
disposição $array de //define
$array=array ();
função de //execute
listFiles (“. ”, “php”, $array);
resultados da busca de //echo/print
foreach ($array como $value) {
eco “$value”. “<br> n”;
}
?>
Agora, combinar os programas alistados acima, você encontrará todos os resultados relacionados em seus Web site será encontrado e alistado. Um optimization mais adicional do Search Engine pode ser feito exame adicionando o seguinte,
1, alista o título de todos os resultados procurarando
SUBSTITUIR O SEGUINTE
se (eregi (“$keyword”, $data)){
$array [] = " $dir/$file ";
}
COM
se (eregi (“$keyword”, $data)){
se (eregi (“<title> (. +)
</title> ", $data, $m)){
$title=$m [“1”];
}
mais {
$title= " nenhum título ";
}
$array [] = " $dir/$file $title ";
}
2, adicionam as ligações a procurarar resultados
MUDAR O SEGUINTE
foreach ($array como $value) {
eco “$value”. “<br> n”;
}
A
foreach ($array como $value) {
alistar ($filedir, $title) o =split (“[]”, $value, “2”);
ecoar o “<a href=$filedir>$value</a>”. “<br> n”;
}
Limite de tempo 3 ajustado para a execução de PHP
ADICIONAR O SEGUINTE NO COMEÇO DE LIMAS DE PHP
set_time_limit (“600”);
A unidade acima é second, assim dez minutos são o litmit.
Agora, combinar todos os programas acima e começar a lima completa de search.php como seguindo,
<? php
set_time_limit (“600”);
$keyword=trim ($_POST [“keyword”]);
se ("" de $keyword==) {
o eco " incorpora por favor seu keyword ";
saída;
}
listFiles da função ($dir, $keyword, &$array) {
$handle=opendir ($dir);
quando (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =”. ”) {
se (is_dir (“$dir/$file”)){
listFiles (“$dir/$file”, $keyword, $array);
}
mais {
$data=fread (fopen (“$dir/$file”, “r”), filesize (“$dir/$file”));
se (eregi (“<body ([^>] +) > (. +) </body>”, $data, $b)){
$body=strip_tags ($b [“2”]);
}
mais {
$body=strip_tags ($data);
}
se ($file! = " search.php ") {
se (eregi (“$keyword”, $body)){
se (eregi (“<title> (. +) </title>”, $data, $m)){
$title=$m [“1”];
}
mais {
$title= " nenhum título ";
}
$array [] = " $dir/$file $title ";
}
}
}
}
}
}
$array=array ();
listFiles (“. ”, “$keyword”, $array);
foreach ($array como $value) {
alistar ($filedir, $title) o =split (“[]”, $value, “2”);
ecoar o “<a href=$filedir target=_blank>$title </a>”. “<br> n”;
}
?>
Agora, você fêz um Search Engine para seu Web site, aprecía-o!
Etapa 1: Caixa da busca do projeto
Sob sua raiz do Web site, fazer uma lima chamada search.htm ou qualquer coisa que você gosta e datilografa dentro o seguinte código:
<html>
<head>
<title>Web Search</title>
http-equiv= " Índice-Tipo " content= " texto do <meta/HTML " >
</head>
text= <body " #000000 " do " #FFFFFF " do bgcolor= >
action= " search.php " do " borne " " do method= do name= " form1 do <form >
width= <table " 100% " cellspacing= " 0 " cellpadding= " 0 " >
<tr>
width= " 36% " do <td >
align= " centro " do <div >
name= " keyword " do " texto " do type= do <input >
</div>
</td>
width= " 64% " do <td >
o type= do <input " submete " o name= " submete " o value= " busca " >
</td>
</tr>
</table>
</form>
</body>
</html>
Etapa 2: Escrever a lima de search.php. É o núcleo de seu Search Engine do Web site.
Sob sua raiz do Web site, criar uma lima chamada search.php ou qualquer coisa que você gosta.
<? php
keywords de //get
$keyword=trim ($_POST [“keyword”]);
//check se o keyword estiver vazio
se ("" de $keyword==) {
não ecoar " nenhum keywords ";
saída;
}
?>
Com acima, você pode dar sugestões a seus usuários quando se esquecem de incorporar um keyword. Agora vamos atravessar todas as limas ou artigos em seu Web site.
<? php
listFiles da função ($dir) {
$handle=opendir ($dir);
quando (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =”. ”) {
//if é um diretório, continua então
se (is_dir (“$dir/$file”)){
listFiles (“$dir/$file”);
}
mais {
//process procurarar aqui com o seguinte certificado de PHP
}
}
}
}
?>
Os seguintes certificados lêem, limas e verificação process se as limas contêm $keyword. Se $keyword for encontrado na lima, o endereço da lima estará conservado em um po-tipo variável.
<? php
listFiles da função ($dir, $keyword, &$array) {
$handle=opendir ($dir);
quando (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =”. ”) {
se (is_dir (“$dir/$file”)){
listFiles (“$dir/$file”, $keyword, $array);
}
mais {
lima de //read
$data=fread (fopen (“$dir/$file”, “r”), filesize (“$dir/$file”));
busca search.php próprio de //avoid
se ($file! = " search.php ") {
keyword de //contain?
se (eregi (“$keyword”, $data)){
$array [] = " $dir/$file ";
}
}
}
}
}
}
disposição $array de //define
$array=array ();
função de //execute
listFiles (“. ”, “php”, $array);
resultados da busca de //echo/print
foreach ($array como $value) {
eco “$value”. “<br> n”;
}
?>
Agora, combinar os programas alistados acima, você encontrará todos os resultados relacionados em seus Web site será encontrado e alistado. Um optimization mais adicional do Search Engine pode ser feito exame adicionando o seguinte,
1, alista o título de todos os resultados procurarando
SUBSTITUIR O SEGUINTE
se (eregi (“$keyword”, $data)){
$array [] = " $dir/$file ";
}
COM
se (eregi (“$keyword”, $data)){
se (eregi (“<title> (. +)
</title> ", $data, $m)){
$title=$m [“1”];
}
mais {
$title= " nenhum título ";
}
$array [] = " $dir/$file $title ";
}
2, adicionam as ligações a procurarar resultados
MUDAR O SEGUINTE
foreach ($array como $value) {
eco “$value”. “<br> n”;
}
A
foreach ($array como $value) {
alistar ($filedir, $title) o =split (“[]”, $value, “2”);
ecoar o “<a href=$filedir>$value</a>”. “<br> n”;
}
Limite de tempo 3 ajustado para a execução de PHP
ADICIONAR O SEGUINTE NO COMEÇO DE LIMAS DE PHP
set_time_limit (“600”);
A unidade acima é second, assim dez minutos são o litmit.
Agora, combinar todos os programas acima e começar a lima completa de search.php como seguindo,
<? php
set_time_limit (“600”);
$keyword=trim ($_POST [“keyword”]);
se ("" de $keyword==) {
o eco " incorpora por favor seu keyword ";
saída;
}
listFiles da função ($dir, $keyword, &$array) {
$handle=opendir ($dir);
quando (falso! == ($file=readdir ($handle))){
se ($file! = ". “&&$file! =”. ”) {
se (is_dir (“$dir/$file”)){
listFiles (“$dir/$file”, $keyword, $array);
}
mais {
$data=fread (fopen (“$dir/$file”, “r”), filesize (“$dir/$file”));
se (eregi (“<body ([^>] +) > (. +) </body>”, $data, $b)){
$body=strip_tags ($b [“2”]);
}
mais {
$body=strip_tags ($data);
}
se ($file! = " search.php ") {
se (eregi (“$keyword”, $body)){
se (eregi (“<title> (. +) </title>”, $data, $m)){
$title=$m [“1”];
}
mais {
$title= " nenhum título ";
}
$array [] = " $dir/$file $title ";
}
}
}
}
}
}
$array=array ();
listFiles (“. ”, “$keyword”, $array);
foreach ($array como $value) {
alistar ($filedir, $title) o =split (“[]”, $value, “2”);
ecoar o “<a href=$filedir target=_blank>$title </a>”. “<br> n”;
}
?>
Agora, você fêz um Search Engine para seu Web site, aprecía-o!
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