首页 > 开发 > Php > 正文

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

2020-02-21 20:56:33
字体:
来源:转载
供稿:网友

本文实例讲述了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)

<?phpprint_r($_POST);?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php socket用法总结》、《php curl用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《PHP数学运算技巧总结》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表