php中用socket模拟http中post或者get提交数据的示例代码

时间:2023-11-19 00:45:21 

废话不多说。直接上代码:
sock_post.php:


<?php
function sock_post($url, $data='') {
  $url = parse_url($url);
  $url['scheme'] || $url['scheme'] = 'http';
  $url['host'] || $url['host'] = $_SERVER['HTTP_HOST'];
  $url['path'][0] != '/' && $url['path'] = '/'.$url['path'];

  $query = $data;
  if(is_array($data)) $query = http_build_query($data);

  $fp = @fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
  if (!$fp) return "Failed to open socket to $url[host]";

  fputs($fp, sprintf("POST %s%s%s HTTP/1.0/n", $url['path'], $url['query'] ? "?" : "", $url['query']));
  fputs($fp, "Host: $url[host]/n");
  fputs($fp, "Content-type: application/x-www-form-urlencoded/n");
  fputs($fp, "Content-length: " . strlen($query) . "/n");
  fputs($fp, "Connection: close/n/n");

  fputs($fp, "$query/n");

  $line = fgets($fp,1024);

  if (@!eregi("^HTTP/1/.. 200", $line))  return;

  $results = "";
  $inheader = 1;
  while(!feof($fp)) {
    $line = fgets($fp,1024);
    if ($inheader && ($line == "/n" || $line == "/r/n")) {
      $inheader = 0;
    }elseif (!$inheader) {
      $results .= $line;
    }
  }
  fclose($fp);

  return $results;
}
 $re = sock_post('http://localhost/direct_post/get_post.php?id=1',array('wel'=>'hello'));
 echo $re;
?>

get_post.php:


<?php
echo "post:";
print_r($_POST);
echo 'get:';
print_r($_GET);
?>

标签:php,socket,post
0
投稿

猜你喜欢

  • 制作一个更漂亮一些的多选列表框

    2007-10-16 13:04:00
  • HMAC算法--asp源码

    2009-08-28 12:51:00
  • 数据库应用经验:如何简单安装MySQL数据库

    2009-01-04 12:58:00
  • 在ASP中用“正则表达式对象”来校验数据的合法性

    2010-05-27 12:25:00
  • 对用户研究实践的思考

    2010-10-19 12:21:00
  • [组图]手把手教你制作ASP留言本

    2007-09-22 09:32:00
  • 关于淘宝商城新版的一点看法

    2009-06-28 16:00:00
  • Bootstrap编写导航栏和登陆框

    2023-08-16 19:08:42
  • jsp页面中获取servlet请求中的参数的办法详解

    2023-06-19 10:52:00
  • 使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)

    2023-07-01 06:32:45
  • linux下mysql命令

    2011-01-04 19:42:00
  • 推荐:怎么用javascript进行拖拽

    2007-09-21 20:14:00
  • ASP GetRef 函数指针试探

    2011-03-16 11:09:00
  • PHP addAttribute()函数讲解

    2023-06-06 09:03:45
  • java-jsp springmvc-controller 传值到页面的方法

    2023-06-16 18:19:52
  • 写给喜欢用DW编写CSS人的一些建议

    2008-05-19 12:09:00
  • ASP程序种如何调用DLL文件

    2008-01-15 19:12:00
  • CSS sprites图片拼合生成器

    2007-10-15 12:25:00
  • 创建IE各版本专属CSS方法

    2007-09-27 12:16:00
  • 使用Python写一个小游戏

    2023-07-20 17:31:07
  • asp之家 网络编程 m.aspxhome.com