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

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

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

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

Tags: socket GET POST

分享到: