在 PHP 中,有一些内置的函数和扩展用于执行 HTTP 请求和处理 HTTP 相关的操作。以下是一些常用的 PHP HTTP 函数和扩展:

使用 cURL 执行 HTTP 请求:

cURL(Client URL)是一个用于传输数据的库和工具,支持各种协议,包括 HTTP、HTTPS、FTP 等。PHP 提供了 cURL 扩展,允许通过代码执行 HTTP 请求。

1. 基本 GET 请求:
   $url = "https://example.com/api/data";
   $ch = curl_init($url);

   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   $response = curl_exec($ch);

   curl_close($ch);

   echo $response;

2. 带参数的 GET 请求:
   $url = "https://example.com/api/data";
   $params = array('param1' => 'value1', 'param2' => 'value2');
   $url .= '?' . http_build_query($params);

   $ch = curl_init($url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   $response = curl_exec($ch);
   curl_close($ch);

   echo $response;

3. POST 请求:
   $url = "https://example.com/api/post";
   $data = array('param1' => 'value1', 'param2' => 'value2');

   $ch = curl_init($url);
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

   $response = curl_exec($ch);
   curl_close($ch);

   echo $response;

使用 file_get_contents() 和 stream_context_create() 执行 HTTP 请求:

file_get_contents() 函数可以用于简单的 HTTP GET 请求,而 stream_context_create() 函数允许你创建一个流上下文,以便在 HTTP 请求中指定额外的选项。

1. 基本 GET 请求:
   $url = "https://example.com/api/data";
   $response = file_get_contents($url);

   echo $response;

2. 带参数的 GET 请求:
   $url = "https://example.com/api/data";
   $params = array('param1' => 'value1', 'param2' => 'value2');
   $url .= '?' . http_build_query($params);

   $context = stream_context_create(array(
       'http' => array(
           'method' => 'GET',
       ),
   ));

   $response = file_get_contents($url, false, $context);

   echo $response;

3. POST 请求:
   $url = "https://example.com/api/post";
   $data = array('param1' => 'value1', 'param2' => 'value2');
   $options = array(
       'http' => array(
           'method'  => 'POST',
           'header'  => 'Content-type: application/x-www-form-urlencoded',
           'content' => http_build_query($data),
       ),
   );
   $context  = stream_context_create($options);
   $response = file_get_contents($url, false, $context);

   echo $response;

以上是一些常用的 PHP HTTP 请求相关的方法,具体选择取决于项目的需求和复杂性。请注意,对于更复杂的 HTTP 请求和处理,你可能需要使用专门的 HTTP 请求库,例如 Guzzle。


转载请注明出处:http://www.pingtaimeng.com/article/detail/3652/PHP