码迷,mamicode.com
首页 > Web开发 > 详细

php使用curl模拟GET和POST请求

时间:2015-03-21 00:59:52      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

GET方式提交数据

function http_get($url, $ssl = FALSE)
{
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    if($ssl)
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_SSLVERSION, 3);
    }
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[‘HTTP_USER_AGENT‘]); // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) {
        var_dump(curl_error($curl));
        return FALSE;
    }
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据
}


POST方式提交数据

function http_post($url, $data, $ssl = FALSE)
{
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    if($ssl)
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
        curl_setopt($curl, CURLOPT_SSLVERSION, 3);
    }
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[‘HTTP_USER_AGENT‘]); // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) {
        return FALSE;
    }
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据
}

 

应用示例($ssl为TRUE代表请求的地址是https,即安全的http)

echo  http_get(‘https://www.baidu.com‘, TRUE);  //get方式请求

$data = json_encode(array(
    ‘key1‘ => ‘value1‘,
    ‘key2‘ => ‘value2‘,
    ‘key3‘ => array(
        ‘key4‘ => ‘value4‘,
                ‘key5‘ => ‘value5‘
    )
));
echo http_post(‘https://www.cqh.com‘, $data, TRUE);  //post方式提交data数据

 

参考:http://www.blogfshare.com/php-curl-get-post.html

php使用curl模拟GET和POST请求

标签:

原文地址:http://www.cnblogs.com/chenqionghe/p/4354984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!