2010-01-20 12 views
21

Ich brauche die JSON-Daten von, http://vortaro.us.to/ajax/epo/eng/ + 'Wort' + "/? Callback =?" Arbeitsbeispiel (nicht genug Ruf)erhalten Json mit PHP

Ich weiß, wie man es in Javascript macht, aber ich brauche meine PHP-Datei, um diese Daten zu bekommen, muss es serverseitig sein, danke ich bin neu Ich habe den ganzen Tag versucht um das herauszufinden. fopen und fread funktioniert nicht,

<?php 
$vorto = $_GET['vorto']; // Get the Word from Outer Space and Search for it! 

if (isset($vorto)) 
    { 
    echo $vorto; 
    } else { 
     $Help = "No Vorto -> add ?vorto=TheWordYouWant to the end of this website"; 
     echo $Help; 
    } 
$url1 = "http://vortaro.us.to/ajax/epo/eng/"; 
$url2 = "/?callback=?"; 
$finalurl= $url1 . $vorto . $url2; 

/* 
PLEASE HELP 

$v1 = fopen($finalurl ,"r"); 
echo $v1; 


$frv1 = fread($v1,filesize($v1)); 
echo $frv1 ; 

*/ 

?> 

Antwort

60

file_get_contents() kann auf einer URL verwendet werden. Eine einfache und bequeme Möglichkeit, den Download von http-Seiten zu verarbeiten.

Das getan, können Sie json_decode() verwenden, um die Daten in etwas nützliches zu analysieren.

+1

file_get_contents()? Benötigen Sie dazu noch ein weiteres PHP-Modul? : D – gumuruh

+0

@gumuruh: file_get_contents() ist in PHP integriert. :-) –

+16

'$ data = json_decode (file_get_contents ('http://sample.com/stuff.json'));' – Costa

14

Werfen Sie einen Blick auf PHP Curl.

Mit diesem Beispiel können Sie alle Informationen abrufen.

<?php 
// create a new cURL resource 
$ch = curl_init(); 

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

// grab URL and pass it to the browser 
curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 
?> 

Stellen Sie sicher, dass PHP Curl in Ihrer php.ini aktiviert ist. Wenn du fopen benutzen willst, muss die Einstellung allow_url_fopen in deiner php.ini 'ON' sein. Überprüfen Sie phpinfo() für alle Einstellungen.

Seit PHP 5.2.0 ist die Funktion json_decode Teil des Kerns.

1

Alte Frage, aber immer noch einer der Top-Hits in Google, also hier ist mein Beitrag zu @ DrDol's Antwort.

<? 
    $url = "http://www.example.com/api/v1/endpoint"; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    $data = json_decode(curl_exec($ch));     

    curl_close($ch); 
?> 

Hinweis der Benutzer des CURLOPT_RETURNTRANSFER, die die Antwort in den Rückgabewert sendet (und gibt falsch auf FAIL).