Пагинация API Yahoo Boss

Я получаю этот вывод json от yahoo boss api. Это продолжается до 50 результатов, но я вставил только первые два...

    (
        [bossresponse] => stdClass Object
            (
                [responsecode] => 200
                [web] => stdClass Object
            (
                [start] => 0
                [count] => 50
                [totalresults] => 2750000
                [results] => Array
                    (
                        [0] => stdClass Object
                            (
                                [date] => 
                                [clickurl] => http://www.apple.com/ipad/
                                [url] => http://www.apple.com/ipad/
                                [dispurl] =&gt; www.apple.com/<b>ipad</b>
                                [title] =&gt; Apple - <b>iPad</b>
                                [abstract] =&gt; <b>iPad</b> is a magical window where nothing comes between you and what you love. And it comes in two sizes.
                            )

                        [1] =&gt; stdClass Object
                            (
                                [date] =&gt; 
                                [clickurl] =&gt; http://en.wikipedia.org/wiki/IPad
                                [url] =&gt; http://en.wikipedia.org/wiki/IPad
                                [dispurl] =&gt; en.wikipedia.org/wiki/<b>IPad</b>
                                [title] =&gt; <b>iPad</b> - Wikipedia, the free encyclopedia
                                [abstract] =&gt; The <b>iPad</b> is a line of tablet computers designed and marketed by Apple Inc., which runs Apple's iOS operating system. The first <b>iPad</b> was released on April 3, 2010; the ...
                            )

                        [2] =&gt; stdClass Object
                            (
                                [date] =&gt; 
                                [clickurl] =&gt; http://www.amazon.com/s?ie=UTF8&amp;page=1&amp;rh=i%3Aaps%2Ck%3Aipad
                                [url] =&gt; http://www.amazon.com/s?ie=UTF8&amp;page=1&amp;rh=i%3Aaps%2Ck%3Aipad
                                [dispurl] =&gt; www.amazon.com/s?ie=UTF8&amp;page=1&amp;rh=i%3Aaps%2Ck%3A<b>ipad</b>
                                [title] =&gt; Amazon.com: <b>ipad</b>
                                [abstract] =&gt; Considering an <b>iPad</b>? Compare it to Kindle Fire HD Check out our easy side-by-side comparison chart to see how the newest <b>iPad</b> stacks up to Kindle Fire HD 8.9".
                            )

Я использую следующий код в php для подключения к API и отображения результатов...

      **//connect to yahoo api and get results in json**
      <?php
      require("OAuth.php");

    $cc_key  = "**confidential**";
    $cc_secret = "**confidential**";
    $url = "http://yboss.yahooapis.com/ysearch/web";
    $args = array();
    $args["q"] = "yahoo";
    $args["format"] = "json";

    $consumer = new OAuthConsumer($cc_key, $cc_secret);
    $request = OAuthRequest::from_consumer_and_token($consumer, NULL,"GET", $url, $args);
    $request->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $consumer, NULL);
    $url = sprintf("%s?%s", $url, OAuthUtil::build_http_query($args));
    $ch = curl_init();
    $headers = array($request->to_header());
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $rsp = curl_exec($ch);
    $results = json_decode($rsp);
    ?>
    **// Present results in html/php**
    <div id="resultsdiv">
    <?php
     foreach($results->bossresponse->web->results as $result) 
      {
echo '<h3><a href='.$result->url.'>'.$result->title.'</br>'.$result->abstract.'</a></h3>';
}
      ?>

Мой вопрос заключается в том, как мне разбить результаты на страницы, поскольку все 50 результатов отображаются только на первой веб-странице. Я хочу отображать десять результатов на каждой странице.

Любая помощь приветствуется.

Спасибо.


person cricketycrack    schedule 20.03.2013    source источник


Ответы (1)


По данным Yahoo! Документация BOSS, в частности раздел Универсальные аргументы, похоже, вы можете использовать параметры start и count для настройки нумерации страниц результатов. Похоже, что количество возвратов по умолчанию равно 50, что соответствует тому, что вы наблюдали.

В вашем примере кода вы можете настроить, добавив:

$args["start"] = 0; // increment as needed
$args["count"] = 10;
person BrianC    schedule 28.03.2013