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 中使用随机数的三个步骤
Oct 09 PHP
也谈截取首页新闻 - 范例
Oct 09 PHP
PHP-MySQL教程归纳总结
Jun 07 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
php无限极分类递归排序实现方法
Nov 11 PHP
php生成zip文件类实例
Apr 07 PHP
微信公众平台之快递查询功能用法实例
Apr 14 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
laravel框架实现后台登录、退出功能示例
Oct 31 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/10/22 PHP
php 显示指定路径下的图片
2009/10/29 PHP
解析CodeIgniter自定义配置文件
2013/06/18 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
Yii视图操作之自定义分页实现方法
2016/07/14 PHP
javascript innerHTML使用分析
2010/12/03 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
python创建和使用字典实例详解
2013/11/01 Python
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
Python如何访问字符串中的值
2020/02/09 Python
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
大四毕业生学习总结的自我评价
2013/10/31 职场文书
党员思想汇报范文
2013/12/30 职场文书
书法比赛获奖感言
2014/02/10 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
党员创先争优活动总结
2014/05/04 职场文书
学习雷锋标语
2014/06/25 职场文书
敬老院标语
2014/06/27 职场文书
唐山大地震的观后感
2015/06/05 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
2015年教师节感言
2015/08/03 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS
MySQL数据库必备之条件查询语句
2021/10/15 MySQL