Cita:
Iniciado por senseeye3led Estoy realizando unas pruebas con
https://sheety.co/ sirve para tener una API con una hoja de excel que tengamos pública en Google.
En el ejemplo de Sheety puedo obtener el fichero JSON sin problema:
Código:
<html>
<head>
<title>UK Theme Parks</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.12/handlebars.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$.getJSON('https://api.sheety.co/uk-theme-parks', function(data) {
var template = Handlebars.compile($('#item-template').html())
$('#items').html(template(data))
})
})
</script>
<script id="item-template" type="text/x-handlebars-template">
<ul>
{{#each this}}
<li><a href="{{website}}">{{name}}</a></li>
{{/each}}
</ul>
</script>
</head>
<body>
<div id="items">Loading theme parks...</div>
</body>
</html>
Quiero realizar el proceso usando únicamente PHP, para ello utilizo el siguiente código:
Código PHP:
<?php
// funcion para evitar problemas con SSL
function file_get_contents_curl( $url ) {
$ch = curl_init();
curl_setopt( $ch, CURLOPT_AUTOREFERER, TRUE );
curl_setopt( $ch, CURLOPT_HEADER, 0 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, TRUE );
$data = curl_exec( $ch );
curl_close( $ch );
return $data;
}
$json_string = 'https://api.sheety.co/uk-theme-parks';
$jsondata = file_get_contents_curl($json_string);
var_dump($jsondata); echo '<br>';
$obj = json_decode($jsondata);
var_dump($obj);
?>
Ejecutando el script PHP obtengo en el $obj bool(false), por lo que entiendo que no estoy accediendo correctamente a la información o no me estoy trayendo realmente el json.
tu funcion esta correcta, prueba con obtener algo simple un texto, podria ser que tengas algun FIREWALL activo, que evite que se obtenga los datos, tambien siempre que uses codigo php que puede que este funcionando o no, trata de especificar la version y la plataforma, ahora mismo tu codigo esta funcionando en un MACOS mojave con php 7.1