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!