Foros del Web » Programando para Internet » PHP »

error en el desarrollo un buscador general para web

Estas en el tema de error en el desarrollo un buscador general para web en el foro de PHP en Foros del Web. Hola a ver si me podeis hechar una mano, llevo todo el día desarrollando un buscador para una web. Lo que hace el código es ...
  #1 (permalink)  
Antiguo 27/01/2005, 10:00
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años
Puntos: 0
error en el desarrollo un buscador general para web

Hola a ver si me podeis hechar una mano, llevo todo el día desarrollando un buscador para una web.

Lo que hace el código es que le pasas una URL, accede a dicha url, recoge todo el texto que haya en dicha página (HTML o PHP) y separa el texto en palabras, entonces grabo la url en una tabla, las palabras en otra, y uso una tabla de relación para relacionar palabras - pagina.

pues bien el código de la página que realiza estas tareas de alimentación para el buscador es el siguiente, y me da error en la línea 67.

Error: Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in E:\beachsoccer\web2\buscador\crear_datos.php on line 67

Seguro que es una tontería pero llevo 2 horas ahí y no veo nada...

gracias x adelantado.

Cita:
<?

include("../inc/config.php");

/*
Script para alimentar el buscador con URL's y su contenido, creando una realción de palabras / página.
*/

/* Conectar a la base de datos: */
$link = Conectarse();
$dominio = "http://www.beachsoccer.com";

$select_db = "SELECT int_id_nodo,str_nombreNodo,str_link FROM bs_menu_nodos WHERE int_estado=1";
$result2 = mysql_query($select_db);

if(mysql_num_rows($result2)>=1){
while($row_p=mysql_fetch_array($result2)){
$id_page = $row_p["int_id_nodo"];
$name_page = $row_p["str_nombreNodo"];

$url = addslashes($row_p["str_link"]);

if( !$url ){
die( "Necesitas definir una URL para poder seguir" );
}else{
$url = $dominio."/".$url;
}

/* La url ya se encuentra grabada en la base de datos? */
$result = mysql_query("SELECT page_id FROM bs_search_pages WHERE page_id = ".$id_page);
$row2 = mysql_fetch_array($result);

if($row2["page_id"]){
/* Si ya lo estaba, usamos su ID: */
$page_id = $row2["page_id"];
}else{
/* Si no lo estaba creamos 1: */
mysql_query("INSERT INTO bs_search_pages (page_url,name_page,page_url) VALUES (".$id_page.",'".$name_page."','".$url."')");
$page_id = $id_page;
}
mysql_free_result($result);
/* Empezamos a parsear el texto para insertarlo en la tabla de la base de datos: */
if( !($fd = fopen($url,"r")) )
die( "NO se ha podido abrir la URL!" );

while( $buf = fgets($fd,1024) ){
/*Borramos los espacios en blanco*/
$buf = trim($buf);

/* Borramos todos los tags del HTML */
$buf = strip_tags($buf);
$buf = ereg_replace('/&\w;/', '', $buf);

/* Recogemos todas las palabras de cada línea */
preg_match_all("/(\b[\w+]+\b)/",$buf,$words);

/* Creamos un bucle para crear la relación página-palabra: */
for( $i = 0; $words[$i]; $i++ )
{
for( $j = 0; $words[$i][$j]; $j++ ){
/* Comprobamos que la palabra no se encuentre ya en la base de datos? */
$cur_word = addslashes( strtolower($words[$i][$j]) );
if(strlen($cur_word)>2){
if($cur_word!="nbsp" && $cur_word!="the"){
$result = mysql_query("SELECT word_id FROM bs_search_words WHERE word_word='".$cur_word."');
$row = mysql_fetch_array($result);
if($row["word_id"]){<--aquí me da el error
/* Si lo está, usamos el ID de la palabra: */
$word_id = $row['word_id'];
}else{
/* Si no, la insertamos y creamos otro ID: */
mysql_query("INSERT INTO bs_search_words (word_word) VALUES ('".$cur_word."')");
$word_id = mysql_insert_id();
}

/* Finalmente insertamos la relación palabra-página en la base de datos: */
mysql_query("INSERT INTO bs_search_occurrence (word_id,page_id) VALUES (".$word_id.",".$page_id.")");
print "Insertada: ".$cur_word."<br>";
}
}
}
}
}
fclose($fd);
}
}
/*cerramos la conexión*/
mysql_close($link);
?>
Ahora mismo y hasta las 19:00 de la tarde también tengo el código disponible en pastebin.com

http://www.pastebin.com/234183
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________

Última edición por markshock; 27/01/2005 a las 10:04
  #2 (permalink)  
Antiguo 27/01/2005, 10:58
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Menos que lo has puesto en pastebin, con el resalte de sintaxis (que lo puedes usar en este foro usando los tag [_PHP] y [_/PHP], sin _). Porque si te fijas en el color, veras que las lineas
Código PHP:
if($cur_word!="nbsp" && $cur_word!="the"){
                                 
$result mysql_query("SELECT word_id FROM bs_search_words WHERE word_word='".$cur_word."');
                                 $row = mysql_fetch_array($result);
                                 if($row["
word_id"]){
                                    /* Si lo está, usamos el ID de la palabra: */
                                    $word_id = $row['word_id'];
                                 }else{ 
detras del mysql_query() las funciones tiene distinto color que delante. Y eso es porque en
Código PHP:
                                 $result mysql_query("SELECT word_id FROM bs_search_words WHERE word_word='".$cur_word."'); 
se te paso cerrar las ":
Código PHP:
                                 $result mysql_query("SELECT word_id FROM bs_search_words WHERE word_word='".$cur_word."'"); //<-- las ultimas " 
Salduos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 28/01/2005, 03:01
Avatar de markshock  
Fecha de Ingreso: abril-2004
Ubicación: Allí, al fondo a la izqui
Mensajes: 316
Antigüedad: 20 años
Puntos: 0
gracias josemi, no sabia lo de los tags .
__________________
Señoooraaaa!! Que camisetas!!!

"Hay 10 tipos de personas, las que piensan en binario y las que no"
_________________________________
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 18:06.