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代码
Dec 06 PHP
PHP编程中字符串处理的5个技巧小结
Nov 13 PHP
PHP的博客ping服务代码
Feb 04 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
May 06 PHP
php利用curl抓取新浪微博内容示例
Apr 27 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
PHP中定义数组常量(array常量)的方法
Nov 17 PHP
ThinkPHP中关联查询实例
Dec 02 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 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
PHP base64编码后解码乱码的解决办法
2014/06/19 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
PHP new static 和 new self详解
2017/02/19 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
2018/04/23 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
详解python tkinter模块安装过程
2020/01/06 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
积极分子思想汇报
2014/01/04 职场文书
个人求职信范例
2014/01/29 职场文书
中学生打架检讨书
2014/02/10 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
公司保密承诺书
2014/03/27 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
初二英语教学反思
2016/02/15 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书