Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/06/2019, 06:56
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: Obtener JSON en PHP

Cita:
Iniciado por senseeye3led Ver Mensaje
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$chCURLOPT_AUTOREFERERTRUE );
  
curl_setopt$chCURLOPT_HEADER);
  
curl_setopt$chCURLOPT_RETURNTRANSFER);
  
curl_setopt$chCURLOPT_URL$url );
  
curl_setopt$chCURLOPT_FOLLOWLOCATIONTRUE );

  
$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
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9