php教程

curl get post请求封装函数示例

php教程 51源码 2024-06-27 人阅读

get请求函数封装

function getUrl($url, $header = []) 
{ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HTTPGET, true); 
    if ($header) { 
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
    } 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时时间:30s 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl检测 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。- 
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header 
    $output = curl_exec($ch); 
    if (!$output) { 
//        echo "request $url fail:", (array)curl_error($ch); //记录日志 
    } 
    curl_close($ch); 
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //记录日志 
    return $output; 
}

del请求函数封装

function delUrl($url, $header = []) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //为true,则会跟踪爬取重定向页面,否则,不会跟踪重定向页面 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时时间:30s 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl检测 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。- 
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $output = curl_exec($ch); 
    if (!$output) { 
//        echo "request $url fail:", (array)curl_error($ch); //记录日志 
    } 
    curl_close($ch); 
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //记录日志 
    return $output; 
}

put请求函数封装

function putUrl($url, $data = [], $header = []) { 
    $ch = curl_init(); 
    if (!emptyempty($data)) { 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //定义提交的数据 
    } 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT'); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //为true,则会跟踪爬取重定向页面,否则,不会跟踪重定向页面 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时时间:30s 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl检测 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。- 
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $output = curl_exec($ch); 
    if (!$output) { 
//        echo "request $url fail:", (array)curl_error($ch); //记录日志 
    } 
    curl_close($ch); 
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //记录日志 
    return $output; 
}

post请求函数封装

function postUrl($url, $data, $header = []) 
{ 
    $ch = curl_init(); 
    if (!emptyempty($data)) { 
        curl_setopt($ch, CURLOPT_POST,true); 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    } 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //为true,则会跟踪爬取重定向页面,否则,不会跟踪重定向页面 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时时间:30s 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl检测 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。- 
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $output = curl_exec($ch); 
    if (!$output) { 
//        echo "request $url fail:", (array)curl_error($ch); //记录日志 
    } 
    curl_close($ch); 
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //记录日志 
    return $output; 
}

post JSON请求函数封装

function postJsonUrl($url, $data, $header = []) 
{ 
    $data = json_encode($data); 
    $ch = curl_init(); 
    if (!emptyempty($data)) { 
        curl_setopt($ch, CURLOPT_POST,true); 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    } 
    $header[]='Content-Type: application/json; charset=utf-8'; 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //为true,则会跟踪爬取重定向页面,否则,不会跟踪重定向页面 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时时间:30s 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //忽略ssl检测 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //1 或 TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。- 
    curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $output = curl_exec($ch); 
    if (!$output) { 
//        echo "request $url fail:", (array)curl_error($ch); //记录日志 
    } 
    curl_close($ch); 
//    echo "request $url success:" . json_encode(array($url, $header, $output), true); //记录日志 
    return $output; 
}


版权声明:文章搜集于网络,如有侵权请联系本站,转载请说明出处:https://www.51yma.cn/jiaocheng/php/1468.html
文章来源:
标签 PHP函数 post