可用于做網(wǎng)絡(luò)請(qǐng)求, 目前支持 GET/POST 且可使用參數(shù)
示例 1 : GET 請(qǐng)求
$url = 'http://127.0.0.1:8092/test/?id=1001&name=jianbo#top';
$params = [
'time' => time(),
'from' => 'test'
];
$rel = curl_get($url, $params);
print_r($rel);
上面示例代碼的輸出結(jié)果來(lái)自:
http://127.0.0.1:8092/test/?time=1545195699&from=test&id=1001&name=jianbo
示例2: GET請(qǐng)求示例中
$url = 'http://127.0.0.1:8092';
$url = 'http://127.0.0.1:8092?';
$url = 'http://127.0.0.1:8092/test/';
$url = 'http://127.0.0.1:8092/test/?';
$url = 'http://127.0.0.1:8092/test/?id=1001&name=jianbo#top';
$params = [];
print(curl_get($url, $params));
示例 3 : POST 請(qǐng)求
$url = 'http://127.0.0.1:8092/test';
$params = [
'time' => time(),
'from' => 'test'
];
$rel = curl_post($url, $params);
print_r($rel);
上面示例代碼的輸出結(jié)果來(lái)自:
http://127.0.0.1:8092/test/?time=1545195699&from=test&id=1001&name=jianbo
代碼段: GET 請(qǐng)求
支持組合新參數(shù)旧蛾,不支持 帶#
的地址
/**
* GET 請(qǐng)求
* @param string $url 請(qǐng)求目標(biāo)鏈接地址
* @param array $params 參數(shù)
* @return mixed
* @author Jianboo
*/
function curl_get($url = '', $params = []) {
// 組合新參數(shù)
if (!empty($params)) {
// 取出鏈接中的參數(shù)
$url_parts= parse_url($url);
$url_query = isset($url_parts['query']) ? $url_parts['query'] : '';
// 組合新參數(shù)
if ($url_query) {
// 原鏈接參數(shù)
$url_query_parts = explode('&', $url_query);
$url_query_array = [];
foreach ($url_query_parts as $value) {
$item = explode('=', $value);
$url_query_array[$item[0]] = $item[1];
}
if (!empty($url_query_array) && is_array($params)) $params = array_merge($params, $url_query_array);
} else {
// 原鏈接沒(méi)有參數(shù)
}
$query = http_build_query($params);
$url_parts = explode('?', $url);
$url = $url_parts[0] . '?' . $query;
} else{
// 保持原鏈接不變
}
$options = array(
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_HEADER =>false
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
代碼段: POST 請(qǐng)求
/**
* POST 請(qǐng)求
* @param string $url
* @param array $params
* @example curl_post('http://yourdomain/target', ['timestamp' => 123456])
* @return mixed
* @author Jianboo
**/
function curl_post($url = '', $params =[]) {
if (empty($url)) return false;
$options = array(
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_HEADER =>false,
CURLOPT_POST =>true,
CURLOPT_POSTFIELDS => $params
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}