PHP 封裝CRUL GET 和 POST 的方法

可用于做網(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é)果來自:

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é)果來自:

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 {
      // 原鏈接沒有參數(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;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容