Super Rune

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.

Category