使用PHP的CURL函数获取数据(POST)

Posted 皓雪寒峰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PHP的CURL函数获取数据(POST)相关的知识,希望对你有一定的参考价值。

POST数据,然后返回JSON数据:

$m = M("crm_sch");
$map[‘ctry‘]="中国";
$dtData = $m->field("`schcid`")->where($map)->select();
unset($map);
$json_data = json_encode($dtData);
$data[‘schcid‘] = $json_data;
$url = "http://***/Webhandler/*.ashx?type=cnsch&s=6e5dfb8";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$rawdata = curl_exec($ch);
curl_close($ch);
$obj = json_decode($rawdata, true);
unset($data);

 

发起请求,直接返回JSON数据:

$url = "http://*/Webhandler/*.ashx?t=info&s=7ca3";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
$rawdata = curl_exec($ch);
curl_close($ch);
$obj = json_decode($rawdata, true);

 

写成函数以便调用:

//curl get
function curl_get($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $dom = curl_exec($ch);
    curl_close($ch);
    return $dom;
}

//curl post
function curl_post($url, $postdata)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdate);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    return $result;
}

 

以上是关于使用PHP的CURL函数获取数据(POST)的主要内容,如果未能解决你的问题,请参考以下文章

在php中分别使用curl的post提交数据的方法和get获取网页数据的方法

php curl如何直接转发当前php接收的headers?get请求如何直接转发get参数?post请求如何直接转发post参数?

php curl模拟post请求提交数据样例总结

PHP模拟POST提交数据并获得返回值之CURL方法(使用PHP extension,然后使用php_curl.dll,很不错)

工作中总结的常用PHP代码

详解php的curl几个函数