-1

i tried to get json from my google sheet using curl in php. however data is not displayed.

this is my code:

$feed = "https://docs.google.com/spreadsheets/d/1h2fIi74s-1fypmZWkOGSwJh1ih9pfcOwQ81KTTiAfIU/edit#gid=2053646480";

$curl = curl_init($feed);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

$curl_response = curl_exec($curl);

curl_close($curl);

$curl_json = json_decode($curl_response, true);
print_r($curl_json);

before i had done it with fopen (got code frm some forum) now it has been disabled though url_fopen is enabled in php.ini file and looking for an alternative as i want the same result as before.

  <?php
 //header('Content-type: application/json');

// Set your CSV feed
$feed = 'https://docs.google.com/spreadsheets/d/1sIq64_3lg9mNxidpClqdjZCZgOPbh8etCRml2cYHXeg/export?format=csv&id=1sIq64_3lg9mNxidpClqdjZCZgOPbh8etCRml2cYHXeg&gid=1790778854';

 // Arrays we'll use later
 $keys = array();
 $newArray = array();

 // Function to convert CSV into associative array
 function csvToArray($file, $delimiter) { 
 if (($handle = fopen($file, 'r')) !== FALSE) { 
 $i = 0; 
 while (($lineArray = fgetcsv($handle, 4000, $delimiter, '"')) !== FALSE) { 
  for ($j = 0; $j < count($lineArray); $j++) { 
    $arr[$i][$j] = $lineArray[$j]; 
  } 
  $i++; 
} 
fclose($handle); 
} 
return $arr; 
} 

// Do it
$data = csvToArray($feed, ',');

// Set number of elements (minus 1 because we shift off the first row)
$count = count($data) - 1;

//Use first row for names  
$labels = array_shift($data);  

foreach ($labels as $label) {
$keys[] = $label;
}

// Add Ids, just in case we want them later
/*$keys[] = 'id';

 for ($i = 0; $i < $count; $i++) {
 $data[$i][] = $i;
 }
 */
 // Bring it all together
 for ($j = 0; $j < $count; $j++) {
 $d = array_combine($keys, $data[$j]);
 $newArray[$j] = $d;
 }

 // Print it out as JSON
 echo json_encode($newArray);

 ?>
Sabin Pdel
  • 47
  • 5

1 Answers1

0

You can use this URL to get JSON data from a Google Spreadsheet.

https://spreadsheets.google.com/feeds/list/1h2fIi74s-1fypmZWkOGSwJh1ih9pfcOwQ81KTTiAfIU/od6/public/full?alt=json

Please note that this API is deprecated, you should use the new Google Data API. Here is more information: https://developers.google.com/gdata/samples/spreadsheet_sample

Pascal Meunier
  • 685
  • 6
  • 15