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)>2 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