php cURL发布到外部域并使用响应

时间:2012-06-11 06:24:07

标签: php curl

好的,这可能是一个简单的问题。我有一个工作概念,即发布到外部域并让它与帖子一起工作,做我想做的事情,并且需要它做。然而。我需要它做完我想要它做的输出JSON响应,我可以反过来使用原始域。我知道用cURL我应该能够获取什么输出但我不知道如何将其用于我所拥有的内容,因为这最初由其他人提供给我使用并且我对cURL并不是非常熟悉

这是我到目前为止发布到域名的内容。

$url = 'http://thedomain.com/new/';
        $fields = array(
                    'api'=>'randomkey',
                    'id'=>'100000',
                    'url'=>urlencode($longurl),
                );

    //url-ify the data for the POST
    $fields_string = '?';
    foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
    rtrim($fields_string,'&');

    //open connection
    $ch = curl_init();

    //set the url, number of POST vars, POST data
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_POST,count($fields));
    curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

    //execute post
    $result = curl_exec($ch);

    //close connection
    curl_close($ch);

如何更改此内容以获取外部网站将以JSON形式吐出的内容并将其设置为可以从我正在使用的域中使用它?

1 个答案:

答案 0 :(得分:2)

您错过了RETURNTRANSFER选项,该选项告诉cURL将回复返回到您的$result

curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);

现在你有了响应,你可以操纵它,json_encode()然后根据需要输出它。