2010-01-20 16 views
21

Necesito obtener los datos de json, http://vortaro.us.to/ajax/epo/eng/ + 'word' + "/? Callback =?" ejemplo de trabajo (no hay suficiente reputación)get json usando php

sé cómo hacerlo en javascript, pero necesito mi archivo php para obtener estos datos, Tiene que ser del lado del servidor, Gracias Soy nuevo He pasado todo el día tratando para resolver esto. fread fopen y no está funcionando,

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

*/ 

?> 

Respuesta

60

file_get_contents() se puede utilizar en una URL. Una forma simple y conveniente de manejar la descarga de páginas http.

Hecho esto, puede usar json_decode() para analizar los datos en algo útil.

+1

file_get_contents()? ¿Eso requiere que se instalen otros módulos php? : D – gumuruh

+0

@gumuruh: file_get_contents() está integrado en PHP. :-) –

+16

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

14

Eche un vistazo a PHP Curl.

Con este ejemplo, puede acceder a todas las informaciones.

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

Asegúrate de que PHP Curl se habilita en tu php.ini. Si desea utilizar fopen, la configuración allow_url_fopen debe estar 'ON' en su php.ini. Checkout phpinfo() para todas las configuraciones.

Desde PHP 5.2.0 la función json_decode es parte del núcleo.

1

Pregunta anterior, pero sigue siendo uno de los principales éxitos en Google, así que esta es mi contribución además de la respuesta 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); 
?> 

Nota al usuario de la CURLOPT_RETURNTRANSFER que envía la respuesta en el valor de retorno (y devuelve falso en fallo).