سؤال

حاليا أنا أستخدم الكود التالي:

$zipcode = '91762';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=restauraunts+".$zipcode."&rsz=large");
curl_setopt($ch, CURLOPT_HEADER, 0);
ob_start();
curl_exec($ch);
$data = ob_get_contents();
ob_end_clean();
curl_close($ch);
$restauraunts_array = json_decode($data, true);

        foreach($restauraunts_array['responseData']['results'] as $key => $value) {
            $results[] = array(
                'title' => $value['titleNoFormatting'],
                'address' => $value['streetAddress'],
                'city' => $value['city'],
                'state' => $value['region'],
                'zipcode' => $zipcode,
                'phone' => $value['phoneNumbers'][0]['number'],
                'lat' => $value['lat'],
                'lng' => $value['lng']
            );
        }

لكنه سيعود فقط 7 نتائج. أنا أبحث عن وسيلة للعودة أكثر من ذلك. لقد بحثت من خلال رمز API ولم أجد أي طرق لاستعادة المزيد من النتائج. ويمكن أن يتم ذلك؟ هل يمكنك توجيهي إلى الوثائق / تنفيذ كيفية الحصول على أكثر من بضع نتائج؟

الإجابة: كان ميكي قادراً على تقديم الإجابة التي كنت أبحث عنها. هذا ما أفعله للحصول على 32 نتيجة:

 $zipcode = '91762';
    $results = array()
    $counter = array(0,8,16,24);
    foreach($counter as $page) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=restauraunts+".$zipcode."&rsz=large&start=".$page);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    ob_start();
    curl_exec($ch);
    $data = ob_get_contents();
    ob_end_clean();
    curl_close($ch);
    $restauraunts_array = json_decode($data, true);
    if(!empty($restauraunts_array['responseData']['results'])) {
            foreach($restauraunts_array['responseData']['results'] as $key => $value) {
                $results[] = array(
                    'title' => $value['titleNoFormatting'],
                    'address' => $value['streetAddress'],
                    'city' => $value['city'],
                    'state' => $value['region'],
                    'zipcode' => $zipcode,
                    'phone' => $value['phoneNumbers'][0]['number'],
                    'lat' => $value['lat'],
                    'lng' => $value['lng']
                );
            }
      }
      return $results;
هل كانت مفيدة؟

المحلول

أنت محدود حاليًا في معظم الحالات إلى ما مجموعه 64 نتيجة - عبر 8 صفحات من 8 نتائج لكل منهما - يمكنك استردادها باستخدام واجهة برمجة تطبيقات البحث. الاستثناءات لهذه القاعدة محلية ومدونة. ستعود المحلية إلى ما يصل إلى 4 صفحات من 8 نتائج ، ليصبح المجموع 32 ، وستعود المدونة فقط الـ 8 الأولى.

مصدر: http://groups.google.com/group/google-ajax-search-api/browse_thread/thread/db6616286ce83ca0

نصائح أخرى

هذا ليس صحيحًا - 4 صفحات مع 8 نتائج لكل منها هي بالتأكيد الحد الأقصى الذي يمكنك استرداده.

إنها 32 نتيجة كحد أقصى البحث المحلي - 64 النتائج هي الحد الأقصى للبحث العادي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top