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&#65292; 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



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: