webentwicklung-frage-antwort-db.com.de

Dateiinhalt von URL abrufen?

Wenn ich die folgende URL im Browser verwende, werde ich aufgefordert, eine Textdatei mit JSOn-Inhalten herunterzuladen.

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

(Klicken Sie oben auf die URL, um den Inhalt der heruntergeladenen Datei zu sehen)

Jetzt möchte ich eine PHP-Seite erstellen. Ich möchte, dass, wenn ich diese PHP-Seite aufrufe, sie über der URL aufruft und Inhalt (json-Format) aus der Datei abruft und auf dem Bildschirm anzeigt.

Wie kann ich das machen ??

31
Awan

Abhängig von Ihrer PHP Konfiguration, dies kann ein einfaches Beispiel sein:

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

Wie auch immer, falls allow_url_fopen ist auf Ihrem System nicht aktiviert, Sie können die Daten wie folgt über CURL lesen:

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

Übrigens, wenn Sie nur die unformatierten JSON-Daten wollen, dann entfernen Sie einfach das json_decode.

71
John Parker

1) lokale einfachste Methoden

<?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) Besserer Weg ist CURL :

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

Es behandelt automatisch [~ # ~] Followlocation [~ # ~] Problem + Remote-URLs:
src="./imageblabla.png" wurde zu:
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

Vergessen Sie nicht: Um HTTPS-Inhalte zu erhalten, sollte Ihre OPENSSL-Erweiterung in Ihrer php.ini aktiviert sein. ( wie erhält man den Inhalt der Website mit HTTPS )

4
Dr D

Verwenden file_get_contents in Kombination mit json_decode und echo.

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

Jetzt können Sie entweder die Variable $ json wiedergeben, wenn Sie nur die Ausgabe anzeigen möchten, oder Sie können sie dekodieren und etwas damit tun, wie folgt:

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