PHP Curl and Loop на основе числового значения - PullRequest
0 голосов
/ 30 марта 2010

Я использую Twitter API, чтобы собрать количество избранных вами твитов, чтобы быть точным, общее количество страниц избранных твитов.

Я использую этот URL: http://api.twitter.com/1/users/show/username.xml

Я беру XML-элемент 'Favorites_count'

Для этого примера предположим, что Favorites_count = 5

API Twitter использует этот URL для получения привилегий: http://twitter.com/favorites.xml (должен быть аутентифицирован)

Вы можете получить только последние 20 привилегий, используя этот URL-адрес, однако вы можете изменить URL-адрес, добавив параметр «page», добавив: ?page=3 в конец URL-адреса избранного, например

http://twitter.com/favorites.xml?page=2

Итак, мне нужно использовать CURL (я думаю), чтобы собирать любимые твиты, но используя URL:

http://twitter.com/favorites.xml?page=1

http://twitter.com/favorites.xml?page=2

http://twitter.com/favorites.xml?page=3

http://twitter.com/favorites.xml?page=4

etc...

Какой-то цикл, чтобы посещать каждый URL, собирать твиты и затем выводить котенты.

Может ли кто-нибудь помочь с этим: - Необходимо использовать CURL для аутентификации - собрать количество страниц твитов (уже написано это) - Затем использовать цикл для просмотра URL каждой страницы на основе значения страниц?

1 Ответ

0 голосов
/ 30 марта 2010

Это избранное_счетное число - общее количество избранных или общее количество страниц?

$twitter = curl_init('http://api.twitter.com/1/users/show/username.xml');
curl_set_opt($twitter, CUROPT_RETURNTRANSFER, true);

$userInfo = curl_exec($twitter);
$userObj = new SimpleXmlElement($userInfo);
$nbFaves = $userObj->favorites_count; // (string) 5

$urlTpl = "http://http://twitter.com/favorites.xml?page=%s";
$favorites = array(); // this will be the data for output

for($i =0; $i < $nbFaves; $i++) {
  $pageUrl = sprintf($urlTpl, $i+1); // notice the +1 to move from 0 indexed to 1 indexed
  curl_set_opt($twitter, CURLOPT_URL, $pageUrl);
  $faves = curl_exec($twitter);
  $faves = new SimpleXmlElement($faves);

  foreach($faves->favorite as $fave) {
     $data = array();
     /* here you assign the diferent child values/attributes 
      * from the favorite node to the $data array
      */
     $favorites[] = $data; // push the data array into $favorites
  }

  unset($faves); // just some cleanup

}

// now you would loop through $favorites and output the data as html.

Теперь, если favorites_count - это общее количество избранных, а не страниц, то вам нужно изменить вышеприведенное, чтобы выяснить, сколько страниц основано на количестве избранных на странице. но это довольно просто.

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