Foros del Web » Programando para Internet » PHP »

obtener metatags open graph de una web

Estas en el tema de obtener metatags open graph de una web en el foro de PHP en Foros del Web. Hola de nuevo foreros mi duda es la siguiente. Quiero integrar a mi sitio web la opcion de que los usuarios puedan subir a la ...
  #1 (permalink)  
Antiguo 12/03/2012, 11:54
Avatar de iimeh  
Fecha de Ingreso: septiembre-2009
Mensajes: 25
Antigüedad: 14 años, 7 meses
Puntos: 2
obtener metatags open graph de una web

Hola de nuevo foreros mi duda es la siguiente.

Quiero integrar a mi sitio web la opcion de que los usuarios puedan subir a la base de datos los videos de youtbe vimeo etc, lo queria hacer como el muro de facebook que cuando ellos pusieran una web esta les devolviera el resultado de las metatags de open graph, la cuestion es qe no encuentr información al respecto.

por lo cal me gustari que alguien me orientara en como obtener dichas metatags.

ya eh logrado obtener las metatags normales

Cita:
<meta name="description" content="la descripcion del sitio">
pero no encuentro la forma de obtener estas.

Cita:
<meta property="og:type" content="">
<meta property="og:image" content="">
<meta property="og:video" content="">
<meta property="og:video:type" content="">
<meta property="og:video:width" content="">
<meta property="og:video:height" content="">
<meta property="og:site_name" content="">
desde ya gracias por su ayuda
  #2 (permalink)  
Antiguo 21/03/2012, 10:34
 
Fecha de Ingreso: marzo-2007
Mensajes: 28
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: obtener metatags open graph de una web

Buenas,

Has encontrado alguna solución a este tema? Es que ando yo con lo mismo y lo único que he encontrado es utilizar la función preg_match

En este caso tendrías que utilizar una expresión regular para cada uno de los metas que quieras recoger, ejemplo:

Código PHP:
preg_match("/<meta property='og:image' content='(.*?)' \/>/"$texto_html$resultados); 
De todas formas esta solucion no me convence para nada...porque tienes que comprobar que los metas estén entre "" o '' o si hay algun espacio en blanco...

De momento es lo único que he podido hacer. A ver si alguién puede ayudarnos con una mejor solución.
  #3 (permalink)  
Antiguo 21/03/2012, 11:59
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: obtener metatags open graph de una web

¿Qué tal esta?

Código PHP:
preg_match_all("/<meta property=\"og:(.*?)\" content=\"(.*?)\" \/>/"$texto_html$resultados); 
En teoria (si la memoria no me falla!), deberia pasarte todos los "type", y sus valores :)
__________________
>> Eleazan's Source
>> @Eleazan
  #4 (permalink)  
Antiguo 22/03/2012, 04:22
 
Fecha de Ingreso: marzo-2007
Mensajes: 28
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: obtener metatags open graph de una web

Si que te pasa en array todos los "type", buena solución Eleasan.

Me parece que de momento conseguir los metas por expresiones regulares va a ser la única opción, no me convence demasiado pero no hay más...
Gracias
  #5 (permalink)  
Antiguo 24/03/2012, 16:26
Avatar de iimeh  
Fecha de Ingreso: septiembre-2009
Mensajes: 25
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: obtener metatags open graph de una web

OK después de tanto buscar encontré la respuesta en la pugna oficial de Open Graph Protocol

[URL="http://ogp.me/"]http://ogp.me/[/URL]

Lo que hice fue descargar una librería de Open Graph y trabajar con ella.

[URL="https://github.com/scottmac/opengraph"]PHP Consumer aquí el link[/URL]

Y bueno el archivo OpenGraphTest.php me marcó un error fatal pero estuve jugando un rato con el código y esa fue mi solución, espero les sirva o s alguien encuentra una mejor forma para trabajar con el espero lo posteen.

Cita:
require_once('OpenGraph.php');
$graph = OpenGraph::fetch('http://laurl.com');


foreach ($graph as $key => $value) {
if($key == 'title'){
echo '<h3>'.$value.'</h3>';
}
}
  #6 (permalink)  
Antiguo 25/03/2012, 04:43
Avatar de ShuyithoKruz  
Fecha de Ingreso: marzo-2012
Ubicación: Tijuana
Mensajes: 40
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: obtener metatags open graph de una web

Espero que les funcione

Código PHP:
libxml_use_internal_errors(true);
$c file_get_contents("http://url/here");
$d = new DomDocument();
$d->loadHTML($c);
$xp = new domxpath($d);
foreach (
$xp->query("//meta[@property='og:title']") as $el) {
    echo 
$el->getAttribute("content");
}
foreach (
$xp->query("//meta[@property='og:description']") as $el) {
    echo 
$el->getAttribute("content");


Etiquetas: metatags, open, usuarios
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 16:21.