tp6 或者 tp8框架 在框架的app/common.php 文件里加一些方法就可以
app\common.php
在这个文件里加 以下代码 就可以实现基于 curl的请求方法 (记得要开启 php的curl扩展)
查看方法 cmd里输入 php -m
if (!function_exists('get')) {
/**
* 发送get请求
* @param string $url 请求地址
* @param array $params 请求参数
* @param array $header 请求头
* @return response|bool
*/
function get($url, $params = [], $header = [])
{
$curl = curl_init();
try
{
curl_setopt_array($curl, array(
CURLOPT_URL => $url . '?' . http_build_query($params),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $header,
));
$response = curl_exec($curl);
curl_close($curl);
if (empty($response))
{
return false;
}
$response1 = json_decode($response, true);
if (empty($response1)) {
return $response;
}
return $response1;
}
catch(\Exception $e)
{
return false;
}
return false;
}
}
if (!function_exists('post')) {
/**
* 发送post请求
* @param string $url 请求地址
* @param array $params 请求参数
* @param array $header 请求头
* @return response|bool
*/
function post($url, $post, $params = array(), $header = [])
{
$curl = curl_init();
try
{
curl_setopt_array($curl, array(
CURLOPT_URL => $url . '?' . http_build_query($params),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $post,
// CURLOPT_HTTPHEADER => array(
// 'Content-Type: application/json'
// ),
));
if (is_string($post)) {
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
}
if (!empty($header)) {
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
}
$response = curl_exec($curl);
curl_close($curl);
if (empty($response))
{
return false;
}
$response = json_decode($response, true);
return $response;
}
catch(\Exception $e)
{
return false;
}
return false;
}
}
在这里增加了两个方法 分别是 get 和 post 可以根据自己的需求 设置相应属性
使用的时候 在控制器里
// get 请求
get('http://www.xxx.com', ['key1' => 1, 'key2' => 2]);
// post 请求
post('http://www.xxx.com', ['key1' => 1, 'key2' => 2]);
就OK了