Получить содержимое файла с URL? - PullRequest
28 голосов
/ 02 апреля 2011

Когда я использую следующий URL в браузере, мне предлагается загрузить текстовый файл с содержимым JSOn.

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

(нажмите выше URL, чтобы увидеть загруженныйсодержимое файла)

Теперь я хочу создать страницу php.Я хочу, чтобы при вызове этой php-страницы она вызывала вышеуказанный URL-адрес, получала содержимое (в формате json) из файла и отображала его на экране.

Как я могу это сделать ??

Ответы [ 5 ]

68 голосов
/ 02 апреля 2011

В зависимости от конфигурации PHP этот может быть простым в использовании:

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

Однако, если allow_url_fopen не включен в вашей системе, вы можете прочитатьданные через CURL выглядят следующим образом:

<?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);
?>

Кстати, если вы просто хотите получить необработанные данные JSON, просто удалите json_decode.

17 голосов
/ 29 марта 2013

1) локальные простейшие методы

<?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) Лучший путь - это CURL :

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

Он автоматически обрабатывает СЛЕДУЮЩЕЕ РАСПОЛОЖЕНИЕ Проблема + Удаленные URL:
src="./imageblabla.png" превращен в:
src="http://example.com/path/imageblabla.png"

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

4 голосов
/ 17 февраля 2013

Не забудьте: для получения содержимого HTTPS ваше расширение OPENSSL должно быть включено в вашем php.ini.( как получить содержимое сайта используйте HTTPS )

3 голосов
/ 02 апреля 2011

Используйте file_get_contents в сочетании с json_decode и echo.

2 голосов
/ 02 апреля 2011
$url = "https://chart.googleapis....";
$json = file_get_contents($url);

Теперь вы можете либо отобразить переменную $ json, если вы просто хотите отобразить вывод, либо вы можете декодировать его и сделать что-то с ним, например:

$data = json_decode($json);
var_dump($data);
...