2010-01-20 7 views
21

Je dois obtenir les données json de, http://vortaro.us.to/ajax/epo/eng/ + 'mot' + "/? Callback =?" exemple de travail (pas assez de réputation)obtenir json en utilisant php

Je sais comment le faire en javascript, mais j'ai besoin de mon fichier php pour obtenir ces données, il doit être côté serveur, merci je suis nouveau, j'ai passé toute la journée à essayer pour comprendre cela. fopen et fread ne fonctionne pas,

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

*/ 

?> 

Répondre

60

file_get_contents() peut être utilisé sur une URL. Un moyen simple et pratique pour gérer le téléchargement de la page http.

Cela fait, vous pouvez utiliser json_decode() pour analyser les données en quelque chose d'utile.

+1

file_get_contents()? est-ce que cela nécessite un autre module PHP à installer? : D – gumuruh

+0

@gumuruh: file_get_contents() est intégré à PHP. :-) –

+16

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

14

Jetez un coup d'œil à PHP Curl.

Avec cet exemple, vous pouvez accéder à toutes les informations. Assurez-vous que PHP Curl est activé dans votre php.ini. Si vous voulez utiliser fopen le paramètre allow_url_fopen doit être 'ON' dans votre fichier php.ini. Check phpinfo() pour tous les paramètres.

Depuis PHP 5.2.0, la fonction json_decode fait partie du noyau.

1

Ancienne question, mais toujours l'un des meilleurs résultats de Google, voici ma contribution à la réponse de @ DrDol.

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

Notez l'utilisateur du CURLOPT_RETURNTRANSFER qui envoie la réponse à la valeur de retour (et retourne faux sur FAIL).