Heim > Backend-Entwicklung > PHP-Tutorial > php自动提交表单的方法(基于fsockopen与curl)_PHP

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

WBOY
Freigeben: 2016-05-27 10:18:59
Original
873 Leute haben es durchsucht

本文实例讲述了php基于fsockopen与curl实现自动提交表单的方法。分享给大家供大家参考,具体如下:

fsockopen和curl都可以做php自动提交表单

1. fsockopen方法:

php代码:

<&#63;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 &#63; "&" : "");
    $encoded .= rawurlencode($k)."=".rawurlencode($v);
   }
  $fp = fsockopen($url['host'], $url['port'] &#63; $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'] &#63; "&#63;" : "", $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);
*/
&#63;>

Nach dem Login kopieren

2. Curl方法:

php代码:

<&#63;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;
&#63;>

Nach dem Login kopieren

result.php (just for test)

<&#63;php
print_r($_POST);
&#63;>

Nach dem Login kopieren

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

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

Verwandte Etiketten:
Quelle:php.cn
Vorheriger Artikel:php简单实现多语言切换的方法_PHP Nächster Artikel:php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)_PHP
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage