php教程

curl get post请求封装函数示例

我的站长站 2023-08-09 人阅读

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; 
}


相关推荐
  • PHP函数
  • post
  • PHP数组转换为JSON格式数据

    PHP数组转换为JSON格式数据,这里介绍下PHP json_encode函数,他可以轻松完成转换。json_encode函数PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。json_encode语法string json_encode ( $value [, $opt...

    php教程 110 4年前
  • 利用get_headers函数判断链接是否有效或失效

    PHP判断链接是否有效或失效的方法代码,get_headers() 是PHP系统级函数,他返回一个包含有服务器响应一个 HTTP 请求所发送的标头的数组。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息(可用来判断远程文件是否存在)。函数定义array get_he...

    php教程 132 4年前
  • PHP Array函数教程

    PHP Array函数,主要功能:创建索引数组。PHP Array语法索引数组的语法:array(value1,value2,value3,etc.);关联数组的语法array(key=>value,key=>value,key=>value,etc.);定义和用法array() 函数用于创建数组。在 PHP 中,有三种类型的数组:索引数组 - 带有...

    php教程 74 4年前
  • AJAX如何向PHP后端POST传递数据

    AJAX如何向PHP后端POST传递数据,只需要在AJAX调用中指定method参数为“POST”即可。例如:$.ajax({ url: 'someurl.php', type: 'POST', data: {name: 'John', location: 'Boston'}, success: function(da...

    php教程 55 1年前
  • 苹果CMS安装时提示always_populate_raw_post_data不支持

    苹果CMS安装时提示always_populate_raw_post_data不支持的解决方法主要原因是配置没开启,所以只需要开启PHP配置文件php-ini文件中的always_populate_raw_post_data配置就可以了。我们找到php-ini配置文件,搜索“always_populate_raw_post_data”默认...

    苹果cms教程 456 5年前
  • PHP发送POST请求示例代码

    发送post请求 * @param string $url 请求地址 * @param array $post_data post键值对数据 * @return stringfunction send_post($url, $post_data) { $postdata = http_build_query($post_data); $options = array( 'http' => array( ...

    php教程 39 1年前
最新更新