cURL with PHP to fetch JSON data
I've been fiddling around with PHP and cURL vs. IIS and I finally got to work.
First make sure to remember to add useragent cURL options:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, trim($url));
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
$json = curl_exec($ch);
curl_close($ch);
$json = str_replace('data = ', '', $json);
$json = json_decode($json);
$json = $json->records;
?>
It's not required, but lets play nice and be the good visitor. Next up is to format the URL correct for the request. I have something like this:
http://example.com/?startdate=1970-01-01 00:00:00&enddate=1970-01-01 23:59:59
. Notice the space between the date and the time. Well, this make IIS
very unhappy, and throws me a bad request. So the spaces need to be converted
to a prober URL and we ends up with this:
http://example.com/?startdate=1970-01-01%2000:00:00&enddate=1970-01-01%2023:59:59
.
So remember to encode your URLs correct and you'll be fine.