php使用socket post数据到其它web服务器的方法


Posted in PHP onJune 02, 2015

本文实例讲述了php使用socket post数据到其它web服务器的方法。分享给大家供大家参考。具体实现方法如下:

function post_request($url, $data, $referer='') {
  // Convert the data array into URL Parameters like a=b&foo=bar etc.
  $data = http_build_query($data);
  // parse the given URL
  $url = parse_url($url);
  if ($url['scheme'] != 'http') { 
    die('Error: Only HTTP request are supported !');
  }
  // extract host and path:
  $host = $url['host'];
  $path = $url['path'];
  // open a socket connection on port 80 - timeout: 30 sec
  $fp = fsockopen($host, 80, $errno, $errstr, 30);
  if ($fp){
    // send the request headers:
    fputs($fp, "POST $path HTTP/1.1\r\n");
    fputs($fp, "Host: $host\r\n");
    if ($referer != '')
      fputs($fp, "Referer: $referer\r\n");
    fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
    fputs($fp, "Content-length: ". strlen($data) ."\r\n");
    fputs($fp, "Connection: close\r\n\r\n");
    fputs($fp, $data);
    $result = ''; 
    while(!feof($fp)) {
      // receive the results of the request
      $result .= fgets($fp, 128);
    }
  }
  else { 
    return array(
      'status' => 'err', 
      'error' => "$errstr ($errno)"
    );
  }
  // close the socket connection:
  fclose($fp);
  // split the result header from the content
  $result = explode("\r\n\r\n", $result, 2);
  $header = isset($result[0]) ? $result[0] : '';
  $content = isset($result[1]) ? $result[1] : '';
  // return as structured array:
  return array(
    'status' => 'ok',
    'header' => $header,
    'content' => $content
  );
}
//使用方法
// Submit those variables to the server
$post_data = array(
  'test' => 'foobar',
  'okay' => 'yes',
  'number' => 2
);
// Send a request to example.com 
$result = post_request('http://www.example.com/', $post_data);
if ($result['status'] == 'ok'){
  // Print headers 
  echo $result['header']; 
  echo '<hr />';
  // print the result of the whole request:
  echo $result['content'];
}
else {
  echo 'A error occured: ' . $result['error']; 
}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP strtotime函数详解
Dec 18 PHP
在yii中新增一个用户验证的方法详解
Jun 20 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
PHP获取Exif缩略图的方法
Jul 13 PHP
PHP代码优化技巧小结
Sep 29 PHP
php curl模拟post请求和提交多维数组的示例代码
Nov 19 PHP
thinkphp微信开发(消息加密解密)
Dec 02 PHP
php生成Android客户端扫描可登录的二维码
May 13 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
PHP+Mysql无刷新问答评论系统(源码)
Dec 20 PHP
PHP常用函数之根据生日计算年龄功能示例
Oct 21 PHP
Laravel框架下载,安装及路由操作图文详解
Dec 04 PHP
php自动给网址加上链接的方法
Jun 02 #PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 #PHP
php正则preg_replace_callback函数用法实例
Jun 01 #PHP
php实现读取和写入tab分割的文件
Jun 01 #PHP
php从文件夹随机读取文件的方法
Jun 01 #PHP
php计算整个目录大小的方法
Jun 01 #PHP
php获取系统变量方法小结
May 29 #PHP
You might like
dedecms模版制作使用方法
2007/04/03 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python中装饰器级连的使用方法示例
2017/09/29 Python
django 发送手机验证码的示例代码
2018/04/25 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
广州品高软件.net笔面试题目
2012/04/18 面试题
秘书专业自荐信范文
2013/12/26 职场文书
房地产项目策划书
2014/02/05 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
应聘教师自荐书
2014/06/16 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书