Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/11/2012, 20:50
Avatar de xarmagedonx
xarmagedonx
 
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 7 meses
Puntos: 29
Exclamación ¿Todo se encuentra indefinido?

Hola amigos, tengo un serio problema con el funcionamiento de mi programa en php.

Genero las keywords de una web y las guardo en una base de datos, pero lo que pasa es que me muestra los siguientes errores:

Cita:
Notice: Undefined index: PiraterÃ*a
Cita:
Notice: Undefined index: Nicolo
Cita:
Notice: Undefined index: Galaxy
Y así por cada keyword que extrajo, no se como evitar que me muestre esta extensaaaaa lista, pero lo peor no es esto, sino que ni siquiera guarda las keywords de cada web

Utilizo el sig código:

Código PHP:
function extractkeys($html,$cantidad=20){
$keywords=array();
$palabrasNoConsideradas="que,qué,cuán,cuan,los,las,una,unos,unas,donde,dónde,como,cómo,cuando,porque,por,para,según,sin,con,mas,más,pero,del";
$palabrasNoConsideradas=explode(",",$palabrasNoConsideradas);

$html=strip_tags(html_entity_decode($html,ENT_NOQUOTES,"UTF-8"));
$html=preg_replace(array('/\s+/'),' ',$html);
$html=preg_replace(array('/\r/''/\n/','/[¿!¡;,:\.\?#@()"]/'),'',$html);
$html=explode(" ",$html);
$palabras=array();
foreach(
$html as $palabra){
if(
ctype_upper($palabra) and count($keywords)<$cantidad and !in_array($palabra,$keywords)){ array_push($keywords,$palabra); } //las palabras en mayúscula son keywords automáticamente
else{
if(
strlen($palabra)>and !in_array($palabra,$palabrasNoConsideradas)){
if(
$palabras[$palabra]){ $palabras[$palabra]++; }
else{ 
$palabras[$palabra]=1; }
}
}
}
arsort($palabras);
$palabras=array_keys(array_slice($palabras,0,$cantidad-count($keywords)));
$keywords=array_merge($palabras,$keywords);

return 
implode(",",$keywords);

En $html tengo la página descargada gracias a DOM, y para utilizar esta función hago lo siguiente:

Código PHP:
if (empty($keywords)){
extractkeys($html,$cantidad);

antes de utilizar esta función extraigo la meta keywords, y en caso de que no exista, esta quedará vacía y utilizo de esta manera la función extractkeys.

Saludos!!! espero que puedan ayudarme