php自動認可表單的方法(基於fsockopen與curl)_php技巧

來源:互聯網
上載者:User

本文執行個體講述了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)

<?phpprint_r($_POST);?>

更多關於PHP相關內容感興趣的讀者可查看本站專題:《php socket用法總結》、《php curl用法總結》、《PHP數組(Array)操作技巧大全》、《PHP資料結構與演算法教程》、《PHP數學運算技巧總結》、《php日期與時間用法總結》、《php物件導向程式設計入門教程》、《php字串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》

希望本文所述對大家PHP程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.