<?php
/**
* +--------------------------------------------------------------
* | CURL工具类文件
* +--------------------------------------------------------------
*/
class Curl {
/**
* get方式请求页面
* @param $url
* @param array $header
* @param int $time_out
* @return mixed
*/
public static function get($url, array $header = [], $time_out = 10){
return self::curlRequest($url, false, [], $header, $time_out);
}
/**
* post方式请求页面
* @param $url
* @param array $post_data
* @param array $header
* @param int $time_out
* @return mixed
*/
public static function post($url, array $post_data = [], array $header = [], $time_out = 10){
return self::curlRequest($url, true, $post_data, $header, $time_out);
}
/**
* @param $url
* @param bool $is_post
* @param array $params
* @param bool $header
* @param int $time_out
* @return mixed
*/
private static function curlRequest($url, $is_post = false, $params = [], $header = false, $time_out = 60){
$ch = curl_init();//初始化curl
// URL
curl_setopt($ch, CURLOPT_URL, $url);
// 设置是否返回response header
curl_setopt($ch, CURLOPT_HEADER, 0);
// 要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//当需要通过curl_getinfo来获取发出请求的header信息时,该选项需要设置为true
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $time_out);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $time_out);
curl_setopt($ch, CURLOPT_POST, $is_post);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
if (1 == strpos('$'.$url, "https://")) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
if ($is_post) {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
}
if ($header) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
PHP使用curl扩展进行GET和POST请求的封装
最新推荐文章于 2022-08-17 09:34:01 发布
这是一个PHP类,用于实现CURL的GET和POST请求。类中包含两个静态方法,分别处理GET和POST方式的数据请求。在请求过程中,可以设置超时时间,添加HTTP头,并对HTTPS进行配置。通过curl_setopt系列函数,类能够处理各种请求参数并返回响应结果。
摘要由CSDN通过智能技术生成