web-dev-qa-db-fra.com

Obtenir le contenu du fichier de l'URL?

Lorsque j'utilise l'URL suivante dans le navigateur, il me demande de télécharger un fichier texte contenant du contenu JSOn.

https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json

(Cliquez sur l'URL voir le contenu du fichier téléchargé)

Maintenant, je veux créer une page php. Je veux que lorsque j'appelle cette page php, elle appelle l'URL ci-dessus et récupère le contenu (format JSON) du fichier et l'affiche à l'écran.

Comment puis-je faire ceci ??

31
Awan

Selon votre configuration PHP, ceci peut) être aussi simple que d’utiliser:

$jsonData = json_decode(file_get_contents('https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json'));

Toutefois, si allow_url_fopen n'est pas activé sur votre système, vous pouvez lire les données via CURL comme suit:

<?php
    $curlSession = curl_init();
    curl_setopt($curlSession, CURLOPT_URL, 'https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json');
    curl_setopt($curlSession, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);

    $jsonData = json_decode(curl_exec($curlSession));
    curl_close($curlSession);
?>

Incidemment, si vous voulez seulement les données JSON brutes, supprimez simplement le json_decode.

71
John Parker

1) méthodes les plus simples locales

<?php
echo readfile("http://example.com/");   //needs "Allow_url_include" enabled
//OR
echo include("http://example.com/");    //needs "Allow_url_include" enabled
//OR
echo file_get_contents("http://example.com/");
//OR
echo stream_get_contents(fopen('http://example.com/', "rb")); //you may use "r" instead of "rb"  //needs "Allow_url_fopen" enabled
?> 

2) La meilleure manière est CURL :

echo get_remote_data('http://example.com'); // GET request 
echo get_remote_data('http://example.com', "var2=something&var3=blabla" ); // POST request

Il gère automatiquement le suivi [~ # ~] [~ # ~] + les URL distantes:
src="./imageblabla.png" transformé en:
src="http://example.com/path/imageblabla.png"

Code: https://github.com/tazotodua/useful-php-scripts/blob/master/get-remote-url-content-data.php

18
T.Todua

N'oubliez pas: pour obtenir le contenu HTTPS, votre extension OPENSSL doit être activée dans votre php.ini. ( comment obtenir le contenu du site utilise HTTPS )

4
Dr D

Utilisation file_get_contents en combinaison avec json_decode et echo.

3
cweiske
$url = "https://chart.googleapis....";
$json = file_get_contents($url);

Maintenant, vous pouvez soit faire écho à la variable $ json, si vous voulez seulement afficher le résultat, ou vous pouvez le décoder, et faire quelque chose avec, comme ceci:

$data = json_decode($json);
var_dump($data);
2
Steve Mayne