当前位置:首页 > PHP教程 > php应用 > 列表

PHP中使用socket方式GET、POST数据实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-19 20:11:51 浏览: 评论:0 

这篇文章主要介绍了PHP中使用socket方式GET、POST数据实例,本文分别给出GET方式和POST方式的代码实例,需要的朋友可以参考下

1. 使用 PHP 获得网页内容 GET方式,代码如下:

  1. <?php 
  2. function socketGet($url, &$ret
  3.  $urlArr = parse_url($url); 
  4.  $host = $urlArr['host']; 
  5.  $port = isset($urlArr['port'])?$urlArr['port']:80; 
  6.  $path = isset($urlArr['path'])?$urlArr['path']:"/"
  7.  $fp = fsockopen($host$port$errno$errstr, 30); 
  8.  if (!$fp
  9.  { 
  10.   echo "$errstr ($errno)<br />\n"
  11.   return false; 
  12.  } 
  13.  else 
  14.  { 
  15.      $out = "GET $path HTTP/1.1\r\n"
  16.      $out .= "Host: $host\r\n"
  17.      $out .= "Connection: Close\r\n\r\n"
  18.   $ret = ""
  19.      fwrite($fp$out); 
  20.      while (!feof($fp)) 
  21.   { 
  22.          $ret .= fgets($fp, 128); 
  23.      } 
  24.      fclose($fp); 
  25.  } 
  26.  return true; 
  27. ?> 

2. 使用 PHP 向页面 POST 数据,代码如下:

  1. <?php 
  2. function socketPost($url$data, &$ret
  3.  $urlArr = parse_url($url); 
  4.  $host = $urlArr['host']; 
  5.  $port = isset($urlArr['port'])?$urlArr['port']:80; 
  6.  $path = isset($urlArr['path'])?$urlArr['path']:"/"
  7.  $fp = fsockopen($host$port$errno$errstr, 30); 
  8.  if (!$fp
  9.  { 
  10.      echo "$errstr ($errno)<br />\n"
  11.   return false; 
  12.  } 
  13.  else 
  14.  { 
  15.      $out = "POST $path HTTP/1.1\r\n"
  16.      $out .= "Host: $host\r\n"
  17.   $out .= "Content-Type: application/x-www-form-urlencoded\r\n"
  18.   $out .= "Content-Length: ".strlen($data)."\r\n"
  19.      $out .= "Connection: Keep-Alive\r\n\r\n"
  20.   $out .= $data
  21.   $ret = ""
  22.      fwrite($fp$out); 
  23.      while (!feof($fp)) 
  24.   { 
  25.          $ret .= fgets($fp, 128); 
  26.      } 
  27.      fclose($fp); 
  28.  } 
  29.  return true; 
  30. ?> 

如果post报错,把$out .= "Connection: Keep-Alive\r\n\r\n";中的Keep-Alive改成Close

Tags: socket GET POST

分享到: