2012-02-28 6 views
6

Estoy tratando de obtener y mostrar imágenes publicadas en un tweet con php a través del parámetro de entidades. Tengo include_entities en mi url y puedo ver las entidades en el json devuelto.Obtener url de la imagen del elemento de la entidad api de twitter php

En mi bucle foreach, estoy haciendo lo siguiente:

foreach($results as $result){ 
    $media_url = $result->entities->media->media_url; 
    $media_size_h = $result->entities->media->sizes->small->h; 
    $media_size_w = $result->entities->media->sizes->small->w; 
... 
} 

Sin embargo, esto no va a regresar nada.

Por mi salida, tengo ...

if(strlen($media_url) > 0) 
{ 
    //format table for tweets with images 

} else { 
    //format table for regular tweets 
} 

Y este es el JSON ...

array(20) { 
[0]=> 
object(stdClass)#5 (21) { 
... 
["entities"]=> 
object(stdClass)#7 (4) { 
    ["media"]=> 
    array(1) { 
    [0]=> 
    object(stdClass)#8 (10) { 
     ["type"]=> 
     string(5) "photo" 
     ["media_url"]=> 
     string(38) "http://photourl.jpg" 
... 
["sizes"]=> 
     object(stdClass)#9 (4) { 
     ["thumb"]=> 
     object(stdClass)#10 (3) { 
      ["resize"]=> 
      string(4) "crop" 
      ["h"]=> 
      int(150) 
      ["w"]=> 
      int(150) 
     } 
... 
} 

Cualquier idea por qué esto no está funcionando? ¡Cualquier ayuda sería muy apreciada!

Respuesta

11

$result->entities->media-> esta es una matriz como se ve en la estructura ... trate de usar

$media_url = $result->entities->media[0]->media_url; 
+0

¡Sí! ¡Eress el mejor! ¡Gracias! – Michael

+0

Hola, no estoy obteniendo el valor del campo media_url como lo escribí aquí - http://stackoverflow.com/questions/24471417/getting-user-tweets-by-twitter-api-call-not-returning-media-url –

+0

La API fue cambiado no hace mucho tiempo. Hoy en día, si quiere la url de medios necesitará hacer: '$ result-> media [0] -> media_url;' – olegario

-1

Podría estar equivocado, pero creo que necesita [] antes y después de los números en las declaraciones if.

0
$results = json_decode($results); 

Creo que es mucho más fácil ver cómo seleccionar los elementos cuando decodificar objetos JSON :)

Inténtalo la próxima vez :)

+0

la próxima vez, intente con la ortografía y el formato del código :-) – kleopatra

+0

Lol, nub. Todo es correcto. Cuide su lectura la próxima vez. –

+0

es correcto ahora, _after_ my edit ... comprueba las diferencias, amigo – kleopatra

Cuestiones relacionadas