php自動(dòng)提交表單的方法(基于fsockopen與curl)
本文實(shí)例講述了php基于fsockopen與curl實(shí)現(xiàn)自動(dòng)提交表單的方法。分享給大家供大家參考,具體如下:
fsockopen和curl都可以做php自動(dòng)提交表單
1. fsockopen方法:
php代碼:
<?php /*----------------------------------------------------------- *功能:使用PHP socke 向指定頁(yè)面提交數(shù)據(jù) *作者:果凍 說(shuō)明: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)
<?php print_r($_POST); ?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php socket用法總結(jié)》、《php curl用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php+html5使用FormData對(duì)象提交表單及上傳圖片的方法
- 使用PHP和HTML5 FormData實(shí)現(xiàn)無(wú)刷新文件上傳教程
- php提交表單時(shí)判斷 if($_POST[submit])與 if(isset($_POST[submit])) 的區(qū)別
- php 多個(gè)submit提交表單 處理方法
- 提交表單后 PHP獲取提交內(nèi)容的實(shí)現(xiàn)方法
- PHP提交表單失敗后如何保留已經(jīng)填寫(xiě)的信息
- php HTML無(wú)刷新提交表單
- PHP防止跨域提交表單
- php防止用戶重復(fù)提交表單
- Ajax提交表單時(shí)驗(yàn)證碼自動(dòng)驗(yàn)證 php后端驗(yàn)證碼檢測(cè)
- PHP使用HTML5 FormData對(duì)象提交表單操作示例
相關(guān)文章
高質(zhì)量PHP代碼的50個(gè)實(shí)用技巧必備(下)
這篇文章主要為大家分享了50個(gè)高質(zhì)量PHP代碼的實(shí)用技巧,大家必備的php實(shí)用代碼,感興趣的小伙伴們可以參考一下2016-01-01php統(tǒng)計(jì)文件大小,以GB、MB、KB、B輸出
學(xué)習(xí)了fread讀取命令,用到了filesize函數(shù),知道這個(gè)函數(shù)定大有用到的時(shí)候,遂用之編寫(xiě)統(tǒng)計(jì)文件大小函數(shù)2011-05-05php使用標(biāo)簽替換的方式生成靜態(tài)頁(yè)面
php可以通過(guò)自帶函數(shù)preg_replace可以用數(shù)組批量替換,不過(guò)用正則表達(dá)式替換效率很低,用起來(lái)也不方便。具體參考php手冊(cè)。有需要的小伙伴可以參考下。2015-05-05PHP結(jié)合Redis+MySQL實(shí)現(xiàn)冷熱數(shù)據(jù)交換應(yīng)用案例詳解
這篇文章主要介紹了PHP結(jié)合Redis+MySQL實(shí)現(xiàn)冷熱數(shù)據(jù)交換應(yīng)用案例,結(jié)合具體實(shí)例形式詳細(xì)分析了Redis+MySQL冷熱數(shù)據(jù)交換原理、實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下2019-07-07PHP使用PHPExcel實(shí)現(xiàn)批量上傳到數(shù)據(jù)庫(kù)的方法
下面小編就為大家?guī)?lái)一篇PHP使用PHPExcel實(shí)現(xiàn)批量上傳到數(shù)據(jù)庫(kù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06PHP實(shí)現(xiàn)cookie跨域session共享的方法分析
這篇文章主要介紹了PHP實(shí)現(xiàn)cookie跨域session共享的方法,結(jié)合實(shí)例形式分析了php操作cookie的有效期、跨域、session存儲(chǔ)等相關(guān)操作技巧,需要的朋友可以參考下2019-08-08