programacion software linux cursos manuales tutoriales
 

Codigo Fuente

noticias energia solar eolica nuclear biomasa energias alternativas

Tutoriales
,
Tutoriales - Diseño - Trucos - Foros/Comunidad - Software - Recursos - HerramientasOnline - Biblioteca
Webmasters - Codigo Fuente - Libros - Cursos Propios - Comunidad - DirectorioN -Cursos y MastersN
Codigo Fuente: volver a home de codigo - allscripts - asp - php - vb - perl - tips&tricks
-
RegistroNewsletter

Codigo Fuente

noticias energia solar eolica nuclear biomasa energias alternativas

Tutoriales
,
Tutoriales - Diseño - Trucos - Foros/Comunidad - Software - Recursos - HerramientasOnline - Biblioteca
Webmasters - Codigo Fuente - Libros - Cursos Propios - Comunidad - DirectorioN -Cursos y MastersN
Codigo Fuente: volver a home de codigo - allscripts - asp - php - vb - perl - tips&tricks
-
Codigo fuente en PERL
Codigo Fuente
Volver a Codigo Fuente
Perl Code
Crear un Buscador en Perl



Autor Christian Gustavo Riva http://cgrsoftware.com

Programa un Buscador para tu Sitio Web
Un buscador de contenidos en un Sitio Web no solo es sinonimo de cierto prestigio o calidad en el desarrollo, sino que ademas es una excelente y utilisima opcion para los usuarios que lo visiten, particularmente si tienes muchas paginas.
El siguiente codigo te mostrara como puedes hacer tu mismo un Buscador en Perl, de manera muy simple y sin ningun enfasis en el diseño de la pagina de resultados.
La implementacion del buscador se encuentra dividida en 3 etapas:

1. El codigo en Perl, ubicado en la carpeta CGI-BIN (o similar) de tu sitio.
2. El mini formulario de busqueda dentro de tus paginas HTML
3. Los delimitadores de "bloques" dentro de cada una de las paginas HTML de tu Sitio que quieras que sean exploradas.

El mini formulario debera ser el siguiente:

<FORM ACTION="http://www.tu-dominio/cgi-bin/buscador.pl">
Palabras a buscar: <INPUT TYPE=TEXT NAME=topicos></FORM>

(lo unico importante de este formulario es nombrar "topicos" a la variable donde se deben ingresar las palabras a buscar, y la ubicacion correcta del script "buscador.pl" dentro de tu sitio).

Los delimitadores de bloques son solo dos TAGS HTML que deberas agregar en todas las paginas que quieras que sean dadas como resultados de las busquedas.
Estos dos TAGS (inicio y final del bloque) deberan estar al comienzo del texto que quieras que sea analizado, y al final del mismo.
Un ejemplo seria el siguiente:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Este texto no quiero que sea analizado por el buscador
por lo que sera omitido de la busqueda
<!$>
pero este texto SI quiero que sea analizado y aparezca en los resultados
si el usuario ingreso alguna palabra incluida en este bloque
<!\$>
Finalmente, este texto tampoco sera analizado ya que no se encuentra
encerrado entre los TAGS delimitadores
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

La posibilidad de delimitar por bloques determinados contenidos de cada una de las paginas te permitira omitir de los resultados de busqueda textos irrelevantes (menues, cabeceras, etc).

Recuerda que el codigo es para uso libre y su finalidad es introducirte en los conceptos que trata y animarte a que experimentes por tu cuenta.
Si publicas u ofreces a terceros una version modificada del mismo, no olvides mencionar al autor original como figura en su cabecera.

.
BUSCADOR.PL
###################################
# (C) 2001 Christian Gustavo Riva #
# http://www.cgrsoftware.com #
###################################
#!/usr/bin/perl

use strict;

## Utilizamos el modulo CGI para tomar el formulario Web:
use CGI;
my $cgi = new CGI;

## Capturamos las palabras a buscar:
my $topicos = $cgi->param('topicos');

## Direccion URL de nuestro Sitio Web:
## (no agregues un slash "/" al final!!)
my $host = 'http://www.cgrsoftware.com';

## Path local de nuestro Sitio Web:
## (agrega un slash "/" al final!!)
my $directorio = '/www/docs/cgrsoftware.com/public_html/';

my $coincidencias = 0;
my $titulo;

print "Content-type: text/html\n\n";

## Comenzamos a dar salida a los resultados:
print "Buscando por <B>$topicos</B>:<BR>";

## Abrimos (si podemos) el directorio a explorar:
unless( opendir(DIR, $directorio ) )
{ print "Error: $!"; exit; }

## Codigo HTML para mostrar resultados numerados:
print '<ol>';

## Tomamos uno por uno a los archivos del directorio:
while ($_=readdir(DIR))
{
## No vamos a analizar carpetas ni archivos que no
## tengan extension .HTM o .HTML:
next if -d $_ || $_ !~ /.htm/;

## Abrimos la pagina (si podemos):
if( open( PAGINA, "$directorio"."$_" ) )
{
## Cargamos toda la pagina en una matriz
## y cerramos el archivo:
my @pagina = <PAGINA>;
close( PAGINA );

## Convertimos la matriz @pagina en una
## variable sin saltos de linea:
## (requerido para analizarlas)
my $pagina = join (" ", @pagina);
$pagina =~ s/\n/ /g;

## Solo analizamos la pagina si encontramos
## los delimitadores <!$> ... <!/$>
if( $pagina =~ /<\!\$>(.*)<\!\/\$>/ )
{
## Copiamos en $bloque el texto contenido
## entre los delimitadores:
my $bloque = $1;

## ¿Se encuentran los topicos buscados en
## el bloque de la pagina?
if( $bloque =~ /$topicos/gi )
{
$coincidencias++;

## Tomamos el Titulo de la pagina, o en
## su defecto le asignamos un nombre general:
if ($pagina =~ /<title>(.*)<\/title>/i)
{ $titulo = $1; }
else { $titulo = "Pagina sin nombre"; }

## Damos salida al resultado en HTML con el
## Titulo y Direccion Web de la pagina:
print "<li><a href=\"$host/$_\">";
print "$titulo</a></li><BR>";
}
}
}
}

close (DIR);

print '</ol>';

print "<BR>Paginas encontradas: <B>$coincidencias</B>";



Si esta informacion te ha sido de utilidad ayudanos pinchando un banner, gracias

Colaboraciones: Mandanos tus codigos, manuales ,apuntes o codigos para publicarlos Mandanos tu script
Tutoriales
Recomedamos: programatium I solorecursos I manuales I pueblos 2.0I info-salud I info-ocio I info-motor
noticias: Salud I Ocio/cine I Musica I Motor IDeportes IJuegos I Finanzas I Moviles I Energia I Ecologia I Tech-y I Mujer I MAC I Salud I