Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/11/2012, 09:13
Avatar de xarmagedonx
xarmagedonx
 
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 17 años, 6 meses
Puntos: 29
Extraer descripción y keywords de una web

Hola compañeros, estoy tratando extraer la descripción y keywords de una página web, si la página tiene meta description y meta keywords funciona perfectamente, pero cuando no los tiene no puedo extraer nada y los campos de la bd quedan en blanco, o marcan "Array".

El código que utilizo es el siguiente:

Código PHP:
    if (empty($descripcion)){
obtenerMetaDescription($html);
    }
    if (empty(
$keywords)){
    
preg_match_all("#<\s*h1[^>]*>[^<]+</h1>#is", $html, $encabezado);
    
preg_match_all("#<\s*b[^>]*>[^<]+</b>#is", $html, $negrita);
    
preg_match_all("#<\s*i[^>]*>[^<]+</i>#is", $html, $italica);
    if(!empty(
$encabezado)){
    
$h1 = $encabezado[0];
    }
    if(!empty(
$negrita)){
    
$bold = $negrita[0];
    }
    if(!empty(
$italica)){
    
$italic = $italica[0];
    }
    
$keys .= $bold;
    
$keys .= " ";
    
$keys .= $h1;
    
$keys .= " ";
    
$keys .= $italic;
    
$keywords = substr(strip_tags($keys), 0, 200);
}
        
storeLink($titulo, $descripcion, $url, $keywords, $prof);
        
$retorno = true;
    }
    return 
$retorno;
}
function 
obtenerMetaDescription($html) {
     
preg_match_all('#<p>(.*)</p>#Us', $html, $parraf);
    if(!empty(
$parraf)){
    
$descripcion = substr(strip_tags($parraf[1][0]), 0, 200);
    }
    } 
Con la descripción el problema es que guarda en blanco el campo en la base de datos, en caso de que no se encuentre la meta description.

Y con las keywords, me guarda "Array Array Array" en vez de las negrita, las italica y los encabezados. En este caso me marca un error:

Cita:
Notice: Undefined variable: keys in ...
Saludos!