Heim >Backend-Entwicklung >PHP-Tutorial >So senden Sie Formulare automatisch in PHP (basierend auf fsockopen und curl)_php-Kenntnisse

So senden Sie Formulare automatisch in PHP (basierend auf fsockopen und curl)_php-Kenntnisse

PHP中文网
PHP中文网Original
2016-05-16 09:00:031899Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie PHP Formulare basierend auf fsockopen und curl automatisch senden kann. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Sowohl fsockopen als auch curl können PHP-automatische Formularübermittlung durchführen

1. fsockopen-Methode:

PHP-Code:

<?php
/*-----------------------------------------------------------
*功能:使用PHP socke 向指定页面提交数据
*作者:果冻  说明:post($url, $data)
*
*    $url   = &#39;http://www.xxx.com:8080/login.php&#39;;
*    $data[user] = &#39;hong&#39;;
*    $data[pass] = &#39;xowldo&#39;;
*    echo post($url, $data);
*-----------------------------------------------------------*/
function post($url, $data) {
  $url = parse_url($url);
   if (!$url) return "couldn&#39;t parse url";
   if (!isset($url[&#39;port&#39;])) { $url[&#39;port&#39;] = ""; }
   if (!isset($url[&#39;query&#39;])) { $url[&#39;query&#39;] = ""; }
  $encoded = "";
   while (list($k,$v) = each($data)) {
    $encoded .= ($encoded ? "&" : "");
    $encoded .= rawurlencode($k)."=".rawurlencode($v);
   }
  $fp = fsockopen($url[&#39;host&#39;], $url[&#39;port&#39;] ? $url[&#39;port&#39;] : 80);
   if (!$fp) return "Failed to open socket to $url[host]";
  fputs($fp, sprintf("POST %s%s%s HTTP/1.0n", $url[&#39;path&#39;], $url[&#39;query&#39;] ? "?" : "", $url[&#39;query&#39;]));
  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 = &#39;http://video.xxx.com:80/game_vm.php&#39;;
$data[&#39;gid&#39;] = &#39;1&#39;;
echo post($url, $data);
*/
?>

2. Curl-Methode:

PHP-Code:

<?php
  $url = &#39;http://localhost/curl/result.php&#39;;
  $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 (nur zum Testen)

<?php
print_r($_POST);
?>

Das Obige ist der Inhalt der automatischen PHP-Formularübermittlungsmethode (basierend auf fsockopen). und Curl)_php-Kenntnisse. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
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