php自动提交表单的方法(基于fsockopen与curl)


Posted in PHP onMay 09, 2016

本文实例讲述了php基于fsockopen与curl实现自动提交表单的方法。分享给大家供大家参考,具体如下:

fsockopen和curl都可以做php自动提交表单

1. fsockopen方法:

php代码:

<?php
/*-----------------------------------------------------------
*功能:使用PHP socke 向指定页面提交数据
*作者:果冻  说明:post($url, $data)
*
*    $url   = 'http://www.xxx.com:8080/login.php';
*    $data[user] = 'hong';
*    $data[pass] = 'xowldo';
*    echo post($url, $data);
*-----------------------------------------------------------*/
function post($url, $data) {
  $url = parse_url($url);
   if (!$url) return "couldn't parse url";
   if (!isset($url['port'])) { $url['port'] = ""; }
   if (!isset($url['query'])) { $url['query'] = ""; }
  $encoded = "";
   while (list($k,$v) = each($data)) {
    $encoded .= ($encoded ? "&" : "");
    $encoded .= rawurlencode($k)."=".rawurlencode($v);
   }
  $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.0n", $url['path'], $url['query'] ? "?" : "", $url['query']));
  fputs($fp, "Host: $url[host]n");
  fputs($fp, "Content-type: application/x-www-form-urlencodedn");
  fputs($fp, "Content-length: " . strlen($encoded) . "n");
  fputs($fp, "Connection: closenn");
  fputs($fp, "$encodedn");
  $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 == "rn")) {
    $inheader = 0;
   }
   elseif (!$inheader) {
    $results .= $line;
   }
   }
  fclose($fp);
   return $results;
}
/*
$url = 'http://video.xxx.com:80/game_vm.php';
$data['gid'] = '1';
echo post($url, $data);
*/
?>

2. Curl方法:

php代码:

<?php
  $url = 'http://localhost/curl/result.php';
  $params = "param=123¶m2=333"; //What will be posted
  $user_agent = "Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_POST,1);
  curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
  curl_setopt($ch, CURLOPT_URL,$url);
  curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  $result=curl_exec ($ch); //execut
  curl_close ($ch);
  echo "Results: <br>".$result;
?>

result.php (just for test)

<?php
print_r($_POST);
?>

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

PHP 相关文章推荐
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
Sep 09 PHP
标准PHP的AES加密算法类
Mar 12 PHP
php对象和数组相互转换的方法
May 12 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
PHP递归实现层级树状展开
Apr 01 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
PHP fopen函数用法实例讲解
Feb 15 PHP
PHP实现文件上传后台处理脚本
Mar 04 PHP
php简单实现多语言切换的方法
May 09 #PHP
深入浅析PHP无限极分类的案例教程
May 09 #PHP
实例讲解php数据访问
May 09 #PHP
php查询操作实现投票功能
May 09 #PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 #PHP
php面向对象编程self和static的区别
May 08 #PHP
Laravel与CI框架中截取字符串函数
May 08 #PHP
You might like
模拟xcopy的函数
2006/10/09 PHP
浅谈PHP语法(1)
2006/10/09 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
php mysql数据库操作类
2008/06/04 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
学习php中的正则表达式
2014/08/17 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
php计算一个文件大小的方法
2015/03/30 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
vue a标签点击实现赋值方式
2020/09/07 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
Python从MP3文件获取id3的方法
2015/06/15 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
巴西手表购物网站:eclock
2019/03/19 全球购物
应付会计岗位职责
2013/12/12 职场文书
历史教育专业个人求职信
2013/12/13 职场文书
公司面试感谢信
2014/02/01 职场文书
触电现场处置方案
2014/05/14 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
小学教师党员承诺书
2015/04/27 职场文书