вернуть весь массив между часами через php - PullRequest
2 голосов
/ 06 июня 2011

Допустим, мы выполняем поиск с использованием поискового API, затем он повторяет что-то вроде этого в json.

  'results' => 
    array
      0 => 
        object(stdClass)[9]
          public 'from_user_id_str' => string '57393273' (length=8)
          public 'profile_image_url' => string 'http://a1.twimg.com/profile_images/1150792547/49146_1365401218_7951632_q_normal.jpg' (length=83)
          public 'created_at' => string 'Mon, 06 Jun 2011 04:01:36 +0000' (length=31)
          public 'from_user' => string 'primalokomotif' (length=14)
          public 'id_str' => string '77585906684526592' (length=17)
          public 'metadata' => 
            object(stdClass)[10]
              public 'result_type' => string 'recent' (length=6)
          public 'to_user_id' => null
          public 'text' => string 'RT @detikcom kober siap perkenalkan ajaran klub suami suami takut istri' (length=71)
          public 'id' => float 7.7585906684527E+16
          public 'from_user_id' => int 57393273
          public 'geo' => null
          public 'iso_language_code' => string 'id' (length=2)
          public 'to_user_id_str' => null
          public 'source' => string '<a href="http://mobile.twitter.com" rel="nofollow">Mobile Web</a>' (length=97)
      1 => 
        object(stdClass)[11]
          public 'from_user_id_str' => string '278060132' (length=9)
          public 'profile_image_url' => string 'http://a1.twimg.com/profile_images/1355377589/296218442_normal.jpg' (length=66)
          public 'created_at' => string 'Mon, 06 Jun 2011 04:01:34 +0000' (length=31)
          public 'from_user' => string 'kaka_kecil' (length=10)
          public 'id_str' => string '77585897637412864' (length=17)
          public 'metadata' => 
            object(stdClass)[12]
              public 'result_type' => string 'recent' (length=6)
          public 'to_user_id' => null
          public 'text' => string 'RT @detikcom: 'Milan Tak Pernah Inginkan Hamsik' http://de.tk/dP7Cs via @detiksport' (length=83)
          public 'id' => float 7.7585897637413E+16
          public 'from_user_id' => int 278060132
          public 'geo' => null
          public 'iso_language_code' => string 'id' (length=2)
          public 'to_user_id_str' => null
          public 'source' => string '<a href="http://ubersocial.com" rel="nofollow">ÃœberSocial</a>' (length=94)
      2 => 
        object(stdClass)[13]
          public 'from_user_id_str' => string '185984810' (length=9)
          public 'profile_image_url' => string 'http://a0.twimg.com/profile_images/1368466468/a_normal.jpg' (length=58)
          public 'created_at' => string 'Mon, 06 Jun 2011 04:01:31 +0000' (length=31)
          public 'from_user' => string 'tiayeeeaah' (length=10)
          public 'id_str' => string '77585887143276544' (length=17)
          public 'metadata' => 
            object(stdClass)[14]
              public 'result_type' => string 'recent' (length=6)
          public 'to_user_id' => null
          public 'text' => string 'hmm..hmm.. -___-" RT @detikcom: Bandung Siap Perkenalkan Ajaran Klub Istri Taat Suami http://bit.ly/kCcOsG' (length=111)
          public 'id' => float 7.7585887143277E+16
          public 'from_user_id' => int 185984810
          public 'geo' => null
          public 'iso_language_code' => string 'id' (length=2)
          public 'to_user_id_str' => null
          public 'source' => string '<a href="http://seesmic.com/seesmic_desktop/sd2" rel="nofollow">Seesmic Desktop</a>' (length=115)
      3 => etc

как мы можем вернуть массивы с датой менее одного часа?или отфильтровать его? может быть, что-то вроде поиска, а затем возвращает все массивы, которые имеют strtotime (создал_кат) но ответа при этом нет.

спасибо за просмотр

Адам Рамадан

Ответы [ 2 ]

2 голосов
/ 06 июня 2011

API поиска в Твиттере имеет since_id, который может вам помочь:

Возвращает результаты с идентификатором, превышающим (то есть более поздним, чем) указанный идентификатор,Существуют ограничения на количество твитов, которые могут быть доступны через API.Если лимит твитов наступил с тех пор, как since_id, since_id будет вынужден использовать самый старый из доступных идентификаторов.

Если вы будете опрашивать каждый час, вы фактически получите сообщения за последний час.Если служба не работает, вы все равно не пропустите ни одного твита, так как можете вернуться на несколько дней назад.

2 голосов
/ 06 июня 2011

Итак, вы хотите вернуть только те, которые имеют created_at в течение последнего часа?Мне нравится использовать array_filter(), когда я могу.

function filterWithinHour($obj)
{
    return (strtotime($obj->created_at) > strtotime('-1 hour'));
}

$recent = array_filter($results, 'filterWithinHour');

Если вам когда-либо понадобится передать это определенное время (вместо предположения сейчас ),Возможно, вы захотите просто зациклить массив вручную, а не связываться с попыткой передать параметр времени в обратный вызов с глобальной переменной.Я ненавижу глобалы, используемые таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...