当前位置: 首页 > 编程笔记 >

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

蒋胡非
2023-03-14
本文向大家介绍php自动提交表单的方法(基于fsockopen与curl),包括了php自动提交表单的方法(基于fsockopen与curl)的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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&param2=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 socket用法总结》、《php curl用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《PHP数学运算技巧总结》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

 类似资料:
  • 本文向大家介绍php利用fsockopen GET/POST提交表单及上传文件,包括了php利用fsockopen GET/POST提交表单及上传文件的使用技巧和注意事项,需要的朋友参考一下 php利用fsockopen GET/POST提交表单及上传文件,具体内容如下 1.GET get.php getapi.php 2.POST post.php postapi.php 3.上传文件 file

  • 本文向大家介绍Form表单按回车自动提交表单的实现方法,包括了Form表单按回车自动提交表单的实现方法的使用技巧和注意事项,需要的朋友参考一下 1.form表单中只有一个input标签,按回车键将自动提交表单 当form表单中只有一个<input type="text" name='name' />时按回车键将会自动将表单提交。 如果不想让其自动提交可以这样做: 再添加一个<input type=

  • 本文向大家介绍Jquery基于Ajax方法自定义无刷新提交表单Form实例,包括了Jquery基于Ajax方法自定义无刷新提交表单Form实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Jquery基于Ajax方法自定义无刷新提交表单Form的方法。分享给大家供大家参考。具体实现方法如下: Jquery的$.ajax方法可以实现ajax调用,要设置url,post,参数等。 如果要提交

  • 本文向大家介绍HTML页面禁用Enter键自动提交表单的方法,包括了HTML页面禁用Enter键自动提交表单的方法的使用技巧和注意事项,需要的朋友参考一下 在HTML页里面由于使用了form,常常需要禁用enter提交表单。因为内容页或者母版页自身有如果有type="submit"的button,当textbox聚焦时,按下enter都会触发表单的默认提交(不论是IE还是firefox),于是需要

  • 问题内容: 我正在将旧的html页面从jQuery迁移到Angular,它包含一些带有的老式表格。当我用指令丰富页面时,旧表格停止工作(我的意思是当您按下按钮时什么也没发生)。 我搜索了此问题并也扫描了Angular文档,但似乎没有人提交表单了。 任何有关如何在不进行大量按键操作的情况下再次使这些形式重新生活的建议,将不胜感激。 当前该表单具有以下标记: 我清除的所有jQuery代码都从Angul

  • 本文向大家介绍jQuery基于Ajax方式提交表单功能示例,包括了jQuery基于Ajax方式提交表单功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery基于Ajax方式提交表单功能。分享给大家供大家参考,具体如下: 提交表单一般通过同步的方式提交,提交后页面刷新或跳转到新页面来显示服务器端返回的处理结果。如果表单提交后有另外的操作或业务需求需要还在这个页面上显示或处理,那