Hacer un Search Engine para tu Web site con PHP

| by Rory Canyon | October 28, 2005
Esto las manos en el artículo de programación de PHP proporciona el conocimiento necesario para diseñar y para desarrollar un Search Engine para tu Web site usando la versión 4.0 de PHP y arriba. La fabricación de un Search Engine para tu Web site con PHP es realmente fácil y proporciona la funcionalidad substancial requerida por la mayor parte de los Web site pequeños-medios. Este artículo introduce cada los pasos del desarrollo, incluyendo diseño y la programación de PHP. Las habilidades de la computadora y el conocimiento básicos de los fundamentales del HTML se requieren. La autorización, nos dejó ahora comienza.

Paso 1: Caja de la búsqueda del diseño

Bajo tu raíz del Web site, hacer un archivo llamado search.htm o cualquier cosa que tienes gusto y mecanografía adentro el código siguiente:

<html>

<head>

<title>Web Search</title>

http-equiv= " Contenido-Tipo " content= " texto/HTML " del <meta >

</head>

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

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

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

<tr>

width= el " 36% " del <td >

align= " centro " del <div >

name= " palabra clave " del " texto " del type= del <input >

</div>

</td>

width= el " 64% " del <td >

el type= del <input " somete " el name= " somete " el value= " búsqueda " >

</td>

</tr>

</table>

</form>

</body>

</html>

Paso 2: Escribir el archivo de search.php. Es la base de tu Search Engine del Web site.

Bajo tu raíz del Web site, crear un archivo llamado search.php o cualquier cosa que tienes gusto.

¿<? php

palabras claves de //get

$keyword=trim ($_POST [“palabra clave”]);

//check si la palabra clave es vacía

si ("" de $keyword==) {

no repetir " ninguna palabra clave ";

salida;

}

?>

Con arriba, puedes dar indirectas a tus usuarios cuando ella se olvida de incorporar una palabra clave. Ahora dejarnos pasan a través de todos los archivos o artículos en tu Web site.

¿<? php

listFiles de la función ($dir) {

$handle=opendir ($dir);

¡mientras que (falso! == ($file=readdir ($handle))){

¡si ($file! = ". ¡“&&$file! =”. ”) {

//if es un directorio, entonces continúa

si (is_dir (“$dir/$file”)){

listFiles (“$dir/$file”);

}

{

//process el buscar aquí con la escritura siguiente de PHP

}

}

}

}

?>

Las escrituras siguientes leen, los archivos y cheque de proceso si los archivos contienen $keyword. Si $keyword se encuentra en el archivo, la dirección del archivo será ahorrada en un poner en orden-tipo variable.

¿<? php

listFiles de la función ($dir, $keyword, &$array) {

$handle=opendir ($dir);

¡mientras que (falso! == ($file=readdir ($handle))){

¡si ($file! = ". ¡“&&$file! =”. ”) {

si (is_dir (“$dir/$file”)){

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

}

{

archivo de //read

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

búsqueda search.php sí mismo de //avoid

¡si ($file! = " search.php ") {

¿palabra clave de //contain?

si (eregi (“$keyword”, $data)){

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

}

}

}

}

}

}

arsenal $array de //define

$array=array ();

función de //execute

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

resultados de la búsqueda de //echo/print

foreach ($array como $value) {

eco “$value”. “<br> n”;

}

?>

Ahora, combinar los programas enumerados arriba, encontrarás todos los resultados relacionados en tus Web site serás encontrado y enumerado. Otra optimización del Search Engine puede ser tomada agregando el siguiente,

1, enumera el título de todos los resultados que buscan

SUBSTITUIR EL SIGUIENTE

si (eregi (“$keyword”, $data)){

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

}

CON

si (eregi (“$keyword”, $data)){

si (eregi (“<title> (. +)

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

$title=$m [“1”];

}

{

$title= " ningún título ";

}

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

}

2, agregan acoplamientos a buscar resultados

CAMBIAR EL SIGUIENTE

foreach ($array como $value) {

eco “$value”. “<br> n”;

}

A

foreach ($array como $value) {

enumerar ($filedir, $title) el =split (“[]”, $value, “2”);

repetir el “<a href=$filedir>$value</a>”. “<br> n”;

}

Límite de tiempo determinado 3 para la ejecución de PHP

AGREGAR EL SIGUIENTE AL PRINCIPIO DE LOS ARCHIVOS DE PHP

set_time_limit (“600”);

La unidad antedicha es second&#65292; tan diez minutos son el litmit.

Ahora, combinar todos los programas antedichos y conseguir el archivo completo de search.php como siguiendo,

¿<? php

set_time_limit (“600”);

$keyword=trim ($_POST [“palabra clave”]);

si ("" de $keyword==) {

el eco " incorpora por favor tu palabra clave ";

salida;

}

listFiles de la función ($dir, $keyword, &$array) {

$handle=opendir ($dir);

¡mientras que (falso! == ($file=readdir ($handle))){

¡si ($file! = ". ¡“&&$file! =”. ”) {

si (is_dir (“$dir/$file”)){

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

}

{

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

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

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

}

{

$body=strip_tags ($data);

}

¡si ($file! = " search.php ") {

si (eregi (“$keyword”, $body)){

si (eregi (“<title> (. +) </title>”, $data, $m)){

$title=$m [“1”];

}

{

$title= " ningún título ";

}

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

}

}

}

}

}

}

$array=array ();

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

foreach ($array como $value) {

enumerar ($filedir, $title) el =split (“[]”, $value, “2”);

repetir el “<a href=$filedir target=_blank>$title </a>”. “<br> n”;

}

?>

¡Ahora, has hecho un Search Engine para tu Web site, gozas de él!

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: