当前位置 : 主页 > 网络编程 > PHP >

curl-get-post请求

来源:互联网 收集:自由互联 发布时间:2021-06-28
php中curl扩展库发送请求 /** * * curl 支持post * @param string $base_url 基础链接 * @param array $query_data 需要请求的数据 * @param string $method 方法 get/post * @param boolean $ssl 关闭ssl验证 * @param integer $
php中curl扩展库发送请求
/**
 *
 * curl 支持post
 * @param string $base_url 基础链接
 * @param array $query_data 需要请求的数据
 * @param string $method 方法 get/post
 * @param boolean $ssl 关闭ssl验证
 * @param integer $exe_timeout 执行超时时间
 * @param integer $conn_timeout 连接超时时间
 * @param integer $dns_timeout dns超时时间
 */
function tx_curl($base_url, $query_data, $method = 'get', $ssl = true, $exe_timeout = 10, $conn_timeout = 10, $dns_timeout = 3600)
{
    $ch = curl_init();

    if ( $method == 'get' ) {
        //method get
        if ( ( !empty($query_data) )
            && ( is_array($query_data) )
        ){
            $connect_symbol = (strpos($base_url, '?')) ? '&' : '?';
            foreach($query_data as $key => $val) {
                if ( is_array($val) ) {
                    $val = serialize($val);
                }
                $base_url .= $connect_symbol . $key . '=' . rawurlencode($val);
                $connect_symbol = '&';
            }
        }
    } else {
        if ( ( !empty($query_data) )
            && ( is_array($query_data) )
        ){
            foreach($query_data as $key => $val) {
                if ( is_array($val) ) {
                    $query_data[$key] = serialize($val);
                }
            }
        }
        //method post
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $query_data);
    }
    curl_setopt($ch, CURLOPT_URL, $base_url);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $conn_timeout);
    curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, $dns_timeout);
    curl_setopt($ch, CURLOPT_TIMEOUT, $exe_timeout);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    // 关闭ssl验证
    if($ssl){
    	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    }

    $output = curl_exec($ch);

    if ( $output === FALSE )
        $output = '';

    curl_close($ch);
    return $output;
}
网友评论