Ho corretto gli apici e la posizione della chiamata a curl_error, inserendo il CURLOPT_FOLLOWLOCATION con valore false, come sotto.
Codice PHP:
<?php
$url = "https://www.instagram.com/rds_official/?__a=1";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20 );
$response = curl_exec ($ch);
if (!$response) {
echo "<p>echo di curl_error: ", curl_error($ch);
}
curl_close($ch);
echo '<br><br>var_dump di $response: ';
var_dump($response);
echo '<br><br>var_dump di $result: ';
$result = json_decode($response, true);
var_dump($result);
echo '<br><br>Dati estratti da $result: ';
echo '<br><br>full name (_a): '.$result['graphql']['user']['full_name'];
echo '<br><br>follower count (_a): '.$result['graphql']['user']['edge_followed_by'][count];
echo '<br><br>following count (_a): '.$result['graphql']['user']['edge_follow'][count];
echo '<br><br>igtv video (_a): '.$result['graphql']['user']['edge_felix_video_timeline'][count];
?>
l'output a video è il seguente:
Codice:
echo di curl_error:
var_dump di $response: string(0) ""
var_dump di $result: NULL
Dati estratti da $result:
full name (_a):
follower count (_a):
following count (_a):
igtv video (_a):
Stessa cosa senza il CURLOPT_FOLLOWLOCATION. Scusate la mia ignoranza, ma non capisco il redirect: se incollo "https://www.instagram.com/rds_official/?__a=1" nella barra indirizzo ottengo direttamente da quella url a video il JSON cercato.