TransWikia.com

Obtener JSON en PHP mediante cURL

Stack Overflow en español Asked by senseye3led on November 24, 2021

Tengo un servidor Win con PHP: 5.4.45 y cURL: 7.42.1, quiero obtener un JSON de una web concreta para ello utilizo el siguiente código:

<?php
error_reporting(E_ALL);

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);
echo '<br>';
?>

En mí máquina recibo la siguiente respuesta:

bool(false)
NULL

He probado en PhpFiddle y parece que el código es correcto. He probado con códigos básicos de cURL por si pudiera ser alguna configuración de FW de mi entorno y cURL funciona correctamente.

One Answer

<?php
error_reporting(E_ALL);

function do_curl($url_json){
    $response = array();

    $ch = curl_init($url_json);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $response = curl_exec($ch);

    curl_close($ch);

    return $response;
}

$json_string = 'https://api.sheety.co/uk-theme-parks';

$jsondata = do_curl($json_string);
//var_dump($jsondata); echo '<br>';

$obj = json_encode(json_decode($jsondata), TRUE); 
echo '<pre>';
print_r($obj);
echo '</pre>';
?>

Prueba con sólo 2 OPT: curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0);

Answered by NeoCodigoCom on November 24, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP