Reputation: 18560
When I use following URL in browser then it prompt me to download a text file with JSOn content.
https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json
(Click above URL see downloaded file content)
Now I want to create a php page. I want that when I call this php page, it should call above URL and get content(json format) from file and show it on screen.
How can I do this ??
Upvotes: 49
Views: 315859
Reputation: 56351
local simplest methods
<?php
readfile("http://example.com/"); //needs "allow_url_fopen" enabled
//OR
include("http://example.com/"); //DANGEROUS! needs "allow_url_include" enabled
//OR
echo file_get_contents("http://example.com/"); //needs "Allow_url_fopen" enabled
//OR
echo stream_get_contents(fopen('http://example.com/', "rb"));
//you may use "r" instead of "rb" //needs "Allow_url_fopen" enabled
Better Way is CURL:
echo get_remote_data('http://example.com'); // GET request
echo get_remote_data('http://example.com', "var2=something&var3=blabla" ); // POST request
It automatically handles FOLLOWLOCATION problem + Remote urls:
src="./imageblabla.png"
turned into:src="http://example.com/path/imageblabla.png"
Code : https://github.com/tazotodua/useful-php-scripts/blob/master/get-remote-url-content-data.php
Upvotes: 25
Reputation: 54425
Depending on your PHP configuration, this may be a easy as using:
$url = 'https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json'
$content = file_get_contents($url);
And then you can process the loaded data. For example, JSON:
$jsonData = json_decode($content);
However, if allow_url_fopen
isn't enabled on your system, you could read the data via CURL as follows:
<?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);
?>
Incidentally, if you just want the raw JSON data, then simply remove the json_decode
.
Upvotes: 94
Reputation: 131
Don't forget: to get HTTPS contents, your OPENSSL extension should be enabled in your php.ini. (how to get contents of site use HTTPS)
Upvotes: 4
Reputation: 22818
$url = "https://chart.googleapis....";
$json = file_get_contents($url);
Now you can either echo the $json variable, if you just want to display the output, or you can decode it, and do something with it, like so:
$data = json_decode($json);
var_dump($data);
Upvotes: 2