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对象转换为数组函数(递归方法)
Feb 04 PHP
php图像处理函数大全(推荐收藏)
Jul 11 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
php 无限分类 树形数据格式化代码
Oct 11 PHP
PHP进程通信基础之信号量与共享内存通信
Feb 19 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
Mar 22 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中常见的mongodb查询操作
2013/06/20 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
jquery简单体验
2007/01/10 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
Python判断直线和矩形是否相交的方法
2015/07/14 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
如何基于python实现不邻接植花
2020/05/01 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
敬老院院长事迹材料
2014/05/21 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
社团招新宣传语
2015/07/13 职场文书
利用python进行数据加载
2021/06/20 Python
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技