Foros del Web » Programando para Internet » PHP »

[Aporte] Buscador Simple con PHP para buscar en diferentes sitios

Estas en el tema de [Aporte] Buscador Simple con PHP para buscar en diferentes sitios en el foro de PHP en Foros del Web. Antes de todo quiero aclara que hice esta opción de búsqueda basándome en la forma que Google, Yahoo, forosdelweb. hacen la búsqueda. voy a explicar ...
  #1 (permalink)  
Antiguo 17/12/2008, 16:54
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 6 meses
Puntos: 31
[Aporte] Buscador Simple con PHP para buscar en diferentes sitios

Antes de todo quiero aclara que hice esta opción de búsqueda basándome en
la forma que Google, Yahoo, forosdelweb. hacen la búsqueda.
voy a explicar con una demostración.
por ejemplo al introducir esta palabra php Mysql en Google el resultado que se vera
en el Explore sera esto:
http://www.google.com/search?hl=en&q=php+Mysql&btnG=Google+Search&aq=f&oq=
como pueden ver el Texto en Negrito es como Google toma la palabra ha buscar
y así usando una Variable y header() se arma la búsqueda.

para empezar este es el Código del formulario.

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Buscar</title>
</head>

<body>
<form action="<?php  echo $_SERVER['PHP_SELF'];?>" method="post">
<!-- Si deseas que la búsqueda se abra en una nueva ventana usa esta opción 
<form action="buscar.php" method="post" name="form1" target="_blank" id="form1">
y quitar la primera linea -->
<table width="909" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#444444">
<tr>
<td bgcolor="#B1C3D9"><a href="http://www.eigts.com/">www.eigts.com</a></td>
<td bgcolor="#B1C3D9">Palabra a Buscar?</td>
<td bgcolor="#B1C3D9">Buscar En: </td>
<td bgcolor="#B1C3D9">&nbsp;</td>
</tr>
<tr>
<td bgcolor="#FFDEAD">&nbsp;</td>
<td bgcolor="#FFDEAD"><font color="#FF3300"><b>Por Favor escribe una palabra aqu&iacute; </b></font><input name="palabra" type="text"></td>
<td bgcolor="#FFDEAD"><font color="#FF3300"><b>&iquest;Buscar En? </b></font>
<select name="lista">
<option value="Google" selected="selected">Google
<option value="ForosdelWeb">Foros del Web
<option value="Yahoo!">Yahoo!
<option value="Eigts">Eigts
</select></td>
<td bgcolor="#FFDEAD"><input name="busque" type="submit" value="Buscar" title="Click Aqu&iacute; Para hacer la B&uacute;squeda"></td>
</tr>
</table>
</form>
<!--<a href="http://www.eigts.com/">www.eigts.com</a>-->
</body>
</html> 
ese código lo pueden modificar a su gusto. yo uso utf-8
y este es el Código php5

Código PHP:
<?php
//Codificacion utf-8
header("Content-Type: text/html; charset=utf-8");

if(isset(
$_POST['busque'])){
$palabra $_POST['palabra'];
$lista $_POST['lista'];
//Si no se ha introducido ninguna palabra se entrega un mensaje y se Redirige al inicio.
// o /PaginaOrigenDeBúsqueda.php 
if($palabra == NULL){
//Reemplazar, www.eigts.com por Tu sitio /PaginaOrigenDeBúsqueda.php
header('refresh:4; url=http://www.eigts.com');
//Texto msg
echo '<br><br><br><br><br><br><center><font color="#FF3300" size="+6">☺ 
<br><br>No ha introducido ninguna Palabra !!</font></center>'
;
}else{
/*
esta función lo que hace es Reemplazar los espacios por un signo de +
para acomodar la forma en que los sitios incluidos hacen la
búsqueda.
*/
function str_rpc($palabra) {
return 
trim(ereg_replace' +''+'$palabra));
}
$palabraB str_rpc($palabra);
/*
aquí se toman los datos que se hallan seleccionado en el menú *select* y se ponen en el *switch*  
y así se Redirige al sitio seleccionado.
si no se selecciona un sitio se toma el que esta por defecto.
*/
switch($lista) {
//Buscar en: www.google.com
case 'Google':
header("Location: http://www.google.com/search?hl=en&q=".$palabraB."&btnG=Google+Search&aq=f&oq=");
break;
//Buscar en: www.forosdelweb.com
case 'ForosdelWeb':
header("Location: http://www.forosdelweb.com/search.php?cx=003443319247910514836%3Ak3yjoy5uums&cof=FORID%3A10&q=".$palabraB."&ie=ISO+8859-1&sa=Buscar#1221");
break;
//Buscar en: search.yahoo.com
case 'Yahoo!':
header("Location: http://search.yahoo.com/search?p=".$palabraB."&fr=yfp-t-501&toggle=1&cop=mss&ei=UTF-8");
break;
//Buscar en: www.eigts.com
case 'Eigts':
header("Location: http://www.eigts.com/search.php?search=".$palabraB);
break;
   }
 }
}
//FIN
?>
ese código lo pueden agregar en la misma pagina php/html o si prefieren pueden crear otro file buscar.php o como lo quieran llamar, y le quitan las etiquetas <!-- -->
para que la búsqueda se abra en una nueva ventana

Una nota si los sitios incluidos modifican la forma de búsqueda quizás no entreguen un resultado.
pero por ahora funciona bien. si introducen el titulo de este tema en la casilla de
búsqueda y seleccionas, ForosdelWeb en el menú *select* seguro que entregara una búsqueda positiva.
este es el nombre de mi sitio Web www.eigts.com pero des afortunadamente tengo restringido el acceso porque lo estoy modificando.

les debo el código php para extraer una búsqueda de una base de datos tengo
el código pero no lo he terminado así que lo pondré en seguida
es todo y espero le sea util a Alguien.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:10.