2011-06-29 23 views

risposta

82

basta usare sotto pezzo di codice per ottenere la risposta dal servizio web riposante url, io uso menzione url sociale,

$response = get_web_page("http://socialmention.com/search?q=iphone+apps&f=json&t=microblogs&lang=fr"); 
$resArr = array(); 
$resArr = json_decode($response); 
echo "<pre>"; print_r($resArr); echo "</pre>"; 

function get_web_page($url) { 
    $options = array(
     CURLOPT_RETURNTRANSFER => true, // return web page 
     CURLOPT_HEADER   => false, // don't return headers 
     CURLOPT_FOLLOWLOCATION => true, // follow redirects 
     CURLOPT_MAXREDIRS  => 10,  // stop after 10 redirects 
     CURLOPT_ENCODING  => "",  // handle compressed 
     CURLOPT_USERAGENT  => "test", // name of client 
     CURLOPT_AUTOREFERER => true, // set referrer on redirect 
     CURLOPT_CONNECTTIMEOUT => 120, // time-out on connect 
     CURLOPT_TIMEOUT  => 120, // time-out on response 
    ); 

    $ch = curl_init($url); 
    curl_setopt_array($ch, $options); 

    $content = curl_exec($ch); 

    curl_close($ch); 

    return $content; 
} 
+5

Oldie bug una goodie ... +1 per l'utilizzo di curl_setopt_array(). Tanto più pulito che chiamare ripetutamente curl_setopt(). – Ligemer

52

Il punto cruciale della soluzione è l'impostazione

CURLOPT_RETURNTRANSFER => true 

poi

$response = curl_exec($ch); 

CURLOPT_RETURNTRANSFER indica a PHP di memorizzare la risposta in una variabile anziché stamparla alla pagina, quindi $ response conterrà la tua risposta. Ecco il tuo codice di lavoro di base (penso, non testarlo):

// init curl object   
$ch = curl_init(); 

// define options 
$optArray = array(
    CURLOPT_URL => 'http://www.google.com', 
    CURLOPT_RETURNTRANSFER => true 
); 

// apply those options 
curl_setopt_array($ch, $optArray); 

// execute request and get response 
$result = curl_exec($ch); 
+3

Alla risposta punto. Risolto il mio problema Grazie mille. –

+1

bella spiegazione. – Kailas

12

Se qualcun altro si imbatte in questo, sto aggiungendo un'altra risposta per fornire il codice di risposta o altre informazioni che potrebbe essere necessario in la risposta".

http://php.net/manual/en/function.curl-getinfo.php

// init curl object   
$ch = curl_init(); 

// define options 
$optArray = array(
    CURLOPT_URL => 'http://www.google.com', 
    CURLOPT_RETURNTRANSFER => true 
); 

// apply those options 
curl_setopt_array($ch, $optArray); 

// execute request and get response 
$result = curl_exec($ch); 

// also get the error and response code 
$errors = curl_error($ch); 
$response = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

curl_close($ch); 

var_dump($errors); 
var_dump($response); 

// output 
string(0) "" 
int(200) 

// change www.google.com to www.googlebofus.co 
string(42) "Could not resolve host: www.googlebofus.co" 
int(0) 
+0

Bello, non sapevo di curl_error() – siliconrockstar