-1

What I'm trying to do is get the XML response into a PHP array so I can insert elements from the response into my database. Here's what I've tried...

I have my code below:

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'myURL');
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_HTTPHEADER,
            array('Content-Type: application/atom+xml',
            'Authorization: Bearer ACCESS_TOKEN',
            'GData-Version: 2',
            'X-GData-Key: key=DEVELOPER_KEY'));
        $re = curl_exec($ch);



        // $xml = new SimpleXMLElement($data);
        // echo $xml;

        curl_close($ch);
        $xmldoc = new SimpleXMLElement($re); 

        print_r($xmldoc);

I'm just not sure how to get it into a variable/array?

Thanks in advance!

Tom
  • 1,215
  • 3
  • 19
  • 30
  • It's in an object. What is the result of `print_r($xmldoc);`? That will show you how to work with it. What do you want to do with it? – AbraCadaver Mar 20 '14 at 21:24
  • $xmldoc = new SimpleXMLElement($re); Throws an error – Tom Mar 20 '14 at 21:46
  • Are you 100% sure that your $re contains valid XML? What does the echo $re look like? – John Ballinger Mar 20 '14 at 22:02
  • I'm downvoting this question because you appear to have been around on the site a while, so have presumably seen good and bad questions, and this one is really lacking in essential information: you showed us the code you tried, but told us nothing about the output you got until someone specifically asked, and then still didn't tell us what error message you saw. Nonetheless, check my answer below which may solve your problem. – IMSoP Mar 20 '14 at 23:26

1 Answers1

1

You have to set the CURLOPT_RETURNTRANSFER option to true on your CURL handle, otherwise CURL's default behaviour is to spit the retrieved content straight to output, and return a boolean success flag, which is why echo $re shows 1 (true becomes '1' when converted to a string).

See the curl_setopt and curl_exec manual pages for details.

You should also learn how to turn on error messages if you haven't already (but only in your development copy!), and pay attention to what they say, not just that they happen. If you don't understand the error, paste the exact message into a question here (or just into a search engine), as someone else may well be able to explain what it is trying to tell you.

Community
  • 1
  • 1
IMSoP
  • 89,526
  • 13
  • 117
  • 169