``` <?php
/***************************************************************************************************
- File Description:
- 用curl的方式的访问远程端口
- curlGet : 用get的方式访问远程的接口返回json串
- curlPost:用post的方式的进行访问远程接口返回的是json串
- http: 通过参数校验来判断是post还是get提交
***************************************************************************************************/
class Http_curl
{
/**
* @param $url 访问的URL参数拼接在url后面
* @return bool|string 返回json字符串
*/
function curlGet($url)
{
if (!isset($url)) {
return "您的参数不合法,请检查";
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
//是否返回http头部1表示返回头部0表示不返回头部
curl_setopt($curl, CURLOPT_HEADER, 0);
//如果1时候如果成功就返回true并且返回相应的值,返回数据不直接输出。0不主动返回值,
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置为FALSE 禁止 cURL 验证对等证书(peer’s certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);// 这个是主要参数
$curl_response = curl_exec($curl);
if ($curl_response == false) {
echo "错误信息:" . curl_error($curl);
}
//可以获取具体的信息
//$curl_data = curl_getinfo($curl)['name'];
curl_close($curl);
return json_encode($curl_response);
}
/**
* @param $post_array post参数数组
* @param $url 访问的url
* @return bool|string 返回json字符串
*/
function curlPost($post_array, $url)
{
if (!isset($post_array, $url)) {
return "您的参数不合法,请检查";
}
$curl = curl_init();
//是否返回http头部1表示返回头部0表示不返回头部
curl_setopt($curl, CURLOPT_HEADER, 0);
//如果1时候如果成功就返回true并且返回相应的值,返回数据不直接输出。0不主动返回值,
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置为FALSE 禁止 cURL 验证对等证书(peer’s certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);// 这个是主要参数
// 这个是主要参数
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
//设置请求为POST
curl_setopt($curl, CURLOPT_POST, 1);
//设置post参数
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_array);
//返回数据
$curl_response = curl_exec($curl);
if ($curl_response == false) {
return "错误信息:" . curl_error($curl);
}
curl_close($curl);
return json_encode($curl_response);
}
/**
* post提交和get提交的url的集合
* @param $method 提交方式:post,get方法
* @param $url 访问的url
* @param data[] 参数数组,如果是post提交的时候该字段必输
* @return bool|string 返回json字符串
*/
function http($url, $method = 'get', $data = [])
{
// Log::xdebug("wechat service http url: $url");
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
if ($method == 'post') {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$content = curl_exec($ch);
$error = curl_error($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $content;
}
} ```