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 相关文章推荐
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
PHP中的session安全吗?
Jan 22 PHP
微信支付开发交易通知实例
Jul 12 PHP
PHP生成短网址方法汇总
Jul 12 PHP
浅谈PHP命令执行php文件需要注意的问题
Dec 16 PHP
ThinkPHP 模板引擎使用详解
May 07 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 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
PHP 程序授权验证开发思路
2009/07/09 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
php实现webservice实例
2014/11/06 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
php查询及多条件查询
2017/02/26 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python简单实现区域生长方式
2020/01/16 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
预备党员思想汇报范文
2013/12/29 职场文书
五型班组建设方案
2014/02/10 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
大学生安全责任书
2014/07/25 职场文书
加强机关作风建设心得体会
2014/10/22 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
详解python的内存分配机制
2021/05/10 Python
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python