Foros del Web » Programando para Internet » PHP »

Problema al extraer el primer parrafo

Estas en el tema de Problema al extraer el primer parrafo en el foro de PHP en Foros del Web. Hola FDW!!, tengo un problema con mi código, al intentar extraer el primer párrafo de un sitio web, me guarda en la bd un campo ...
  #1 (permalink)  
Antiguo 29/11/2012, 15:20
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Busqueda Problema al extraer el primer parrafo

Hola FDW!!, tengo un problema con mi código, al intentar extraer el primer párrafo de un sitio web, me guarda en la bd un campo en blanco.

Utilizo DOM para descargar el sitio web, que guardo en la variable $html.

El código que utilizo es el siguiente:

Código PHP:
function obtenerMetaDescription($html) {
     
preg_match_all('#<p>(.*)</p>#Us'$html$parraf);
    if(!empty(
$parraf)){
    
$descripcion substr(strip_tags($parraf[1][0]), 0200);
    }
    } 
Y para utilizarlo (utilizo empty($descripcion) porque la variable contiene la meta description, pero en caso de que no exista hago el if):

Código PHP:
    if (empty($descripcion)){
obtenerMetaDescription($html);
    } 
Lo que intento con el código es extraer el 1° párrafo para utilizarlo como descripción.

¿Alguien sabe como soluciono este problema?

Saludos y gracias!!!
  #2 (permalink)  
Antiguo 29/11/2012, 16:39
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema al extraer el primer parrafo

El problema con el primer párrafo es que puede o no contener algo interesante para usarlo como descripción. En el caso de Google su primer párrafo es: "© 2012 - Privacidad y condiciones". También hay que tener en cuenta que no todos los sitios tienen etiquetas de párrafo.

Sitios como FB lo que hacen es agregar la url y título de la página, en el caso de existir la descripción la agrega y coge 2 o 3 imágenes.

Puedes utilizar las clases DOM de PHP para obtener el primer párrafo o el título:

Código PHP:
Ver original
  1. $site = 'http://php.net';
  2. $doc = new DOMDocument();
  3. $doc->loadHTMLFile($site);
  4. $p = $doc->getElementsByTagName('p');
  5. echo $p ->item(0)->nodeValue;

y las metatags con la función get_meta_tags.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 29/11/2012, 17:15
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Problema al extraer el primer parrafo

Muchas gracias andres!, edite algunas variables y borre el echo para adaptarlo a mi código.

Lo estoy probando y funciona muy bien.

Saludos y gracias!

Etiquetas: insertar+datos, mysql, bases-de-datos
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 12:23.