atom feed13 messages in com.googlegroups.google-ajax-search-apiRe: Local Search phoneNumbers CURL
FromSent OnAttachments
SebastianMar 30, 2009 5:34 am 
SebastianApr 2, 2009 4:40 am 
PetrogadApr 2, 2009 7:14 am 
sebastian de comocomoApr 3, 2009 2:45 am 
PetrogadApr 3, 2009 6:05 am 
sebastian de comocomoApr 4, 2009 4:43 am 
PetrogadApr 4, 2009 8:21 am 
sebastian de comocomoApr 5, 2009 3:46 am 
PetrogadApr 5, 2009 8:57 am 
Vision Jinx (Guru)Apr 5, 2009 12:37 pm 
sebastian de comocomoApr 6, 2009 1:16 am 
PetrogadApr 6, 2009 6:07 am 
sebastian de comocomoApr 6, 2009 6:38 am 
Subject:Re: Local Search phoneNumbers CURL
From:Petrogad (petr@gmail.com)
Date:Apr 4, 2009 8:21:20 am
List:com.googlegroups.google-ajax-search-api

Sebastian-

Again I tell you:

print_r($body);

then use: http://php.net/dom to understand how to use the information that is retrieved.

On Apr 4, 6:43 am, sebastian de comocomo <seba@comocomo.com> wrote:

Hi Petrogad,

I do get results, I get the title, I even get the addressline which is also an Array, but I don't manage to get the phoneNumbers.

Everything is in the same format, and I've tried all kind of combinations in each of the "foreach"'s.( the $r and the $sr).

I even run tests to understand how the foreach function works

http://allmybookings.com/foreach.php

For the title: 1st. I assign $r -> title, and then for each $r->title result I print as $sr. I don't know why this change of variable, but the title works.

I don't understand what is the relation with the PHP DOM?

What am I doing wrong?

Here is the last code with new tests:

<?php require_once 'JSON.php'; if(isset($_GET['q'])) { $start = isset($_GET['start']) ? $_GET['start'] : 0; $url = 'http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q='.urlen... _GET['q']).'&rsz=small&start='.$start;     $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);     $body = curl_exec($ch);     curl_close($ch);     $body = json_decode($body);     $i    = 0;     $search_results = array();     foreach($body->responseData->results as $r) {         $search_results['results'][$i]['title'] = $r->title; //        $search_results['results'][$i]['phoneNumbers'] = $r->phoneNumbers; //        $search_results['results'][$i]['type'] = $r->type; //        $search_results['results'][$i]['number'] = $r->number;

        $search_results['phoneNumbers'][$i]['number'] = $r->number;         $i++;     }      foreach($search_results['results'] as $sr) {         echo $sr['title']."<br>";         echo $sr['number'][0]."<br>";         echo count($sr['phoneNumbers'][0])." <- 1 : gives 1 result. meaning there is 1 phone number<br>"; // best:         echo count($sr['phoneNumbers']['number'])." <- 2<br>"; // gives 0 results, but doesn't give an error         echo count($sr['phoneNumbers']['number'][0])." <- 3<br>"; // gives 0 results, but doesn't give an error         echo $sr['phoneNumbers']." <- 4<br>"; // doesn't give an error but doesn't give a number.         echo $sr['phoneNumbers']['number']." <- 5<br>"; // empty line         echo $sr['phoneNumbers']['number'][0]." <- 6<br>"; // empty line         echo $sr['phoneNumbers'][0]['number']." <- 7<br>"; // empty line         echo $sr['phoneNumbers'][0]['number'][0]." <- 8<br>"; // empty line         echo $sr['phoneNumbers']['number'][0]." <- 9<br>"; // empty line         echo count($sr['phoneNumbers'][0]['number'])."<br>";

On 03/04/09 15:05, "Petrogad" <petr@gmail.com> wrote:

Sebastian, the answer is in front of you :)

I'm not sure where you're getting results in:     foreach($body-

responseData->results as $r) {

if the below is what you get, then re-adjust your querying.

Also take  a look at this: http://php.net/dom

Good Luck, all the answers are above.

On Apr 3, 4:45 am, sebastian de comocomo <seba@comocomo.com> wrote:

Hi Petrogad,

Cool, I get this:

[phoneNumbers] => Array                                 (                                     [0] => stdClass Object                                         (                                             [type] =>                                             [number] => 03 232 02 10                                         )

                                )

So, there is a phone number: 03 232 02 10.

I suppose the structure should be something like this: ... $search_results['results'][$i]['phoneNumbers'] = $r->phoneNumbers;

$search_results['results'][$i]['type'] = $r->type;

$search_results['results'][$i]['number'] = $r->number; ... echo $sr['phoneNumbers'][0]['number']; ... But this stops the code, in that line.

I also tried: ... $search_results['results'][$i]['phoneNumbers']['number'] = $r->newnumber; ... But this gives an empty record.

And this: $search_results['results'][$i]['phoneNumbers'][$i]['number'] = $r->newnumber;

Which gives an error -> empty page.

What is "stdClass Object"?

Thanks, Sebastian

On 02/04/09 16:14, "Petrogad" <petr@gmail.com> wrote:

Sebastian-

I would first print_r $body so you know what you're doing.  then proceed accordingly.

On Apr 2, 6:40 am, Sebastian <seba@comocomo.com> wrote:

Hi,

could anyone help me out with this?

I've tried everything I can imagine.

I suppose this is correct:

echo count($sr['phoneNumbers'][0]);

To see if there are any phone numbers in the variable, isn't it?

If so, how do I get the number?

Thanks Sebastian

Hi,

I've tried many different options to get thephoneNumbersfrom the Local Search API, but I didn't manage to do so.

I count how many numbers are in thephoneNumbersvariable and I get 1 or 2 depending on the record,

count($sr['phoneNumbers'][0])

I followed the reference guidelines, to try to do different options but I don't manage to do so. The guide says there are 3 variables to thephoneNumbers:

                $search_results['results'][$i]['phoneNumbers'] = $r->phoneNumbers;                 $search_results['results'][$i]['type'] = $r->type; // 1) main 2) fax 3) mobile                 $search_results['results'][$i]['number'] = $r->number; // the number itself

I'd like to do so, in PHP using CURL.

here are my tests:

and here the code:

<?php require_once 'JSON.php'; if(isset($_GET['q'])) { $start = isset($_GET['start']) ? $_GET['start'] : 0; $url = 'http://ajax.googleapis.com/ajax/services/search/local? v=1.0&q='.urlencode($_GET['q']).'&rsz=small&start='.$start;         $ch = curl_init();         curl_setopt($ch, CURLOPT_URL, $url);         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);         $body = curl_exec($ch);         curl_close($ch);         $body = json_decode($body);         $i      = 0;         $search_results = array();         foreach($body->responseData->results as $r) {                 $search_results['results'][$i]['title'] = $r->title;                 $search_results['results'][$i]['phoneNumbers'] = $r->phoneNumbers;                 $search_results['results'][$i]['type'] = $r->type;                 $search_results['results'][$i]['number'] = $r->number;                 $i++;         }          foreach($search_results['results'] as $sr) {                 echo $sr['title']."<br>";                 echo count($sr['phoneNumbers'][0])." <- 1 : gives 1 result. meaning there is 1 phone number<br>"; // best:                 echo count($sr['phoneNumbers']['number'])." <- 2<br>"; // gives 0 results, but doesn't give an error                 echo count($sr['phoneNumbers']['number'][0])." <- 3<br>"; // gives 0 results, but doesn't give an error                 echo $sr['phoneNumbers']." <- 4<br>"; // doesn't give an error but doesn't give a number.                 echo $sr['phoneNumbers']['number']." <- 5<br>"; // empty line                 echo $sr['phoneNumbers']['number'][0]." <- 6<br>"; // empty line // this gives error     echo count($sr['phoneNumbers'][0] ['number'])."<br>"; // this gives error     echo $sr['phoneNumbers'][0]."<br>"; // this gives error             echo $sr['phoneNumbers'][0]['number']."<br>";} }

?>

Has anyone manage to get this info?