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)容感興趣的讀者可查看本站專(zhuān)題:《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防止用戶(hù)重復(fù)提交表單
- Ajax提交表單時(shí)驗(yàn)證碼自動(dòng)驗(yàn)證 php后端驗(yàn)證碼檢測(cè)
- PHP使用HTML5 FormData對(duì)象提交表單操作示例
相關(guān)文章
PHP為表單獲取的URL 地址預(yù)設(shè) http 字符串函數(shù)代碼
有時(shí)需要接受一些表單中的網(wǎng)址輸入,但用戶(hù)很少添加 http:// 字段,此代碼將為網(wǎng)址添加該字段。2010-05-05
解析posix與perl標(biāo)準(zhǔn)的正則表達(dá)式區(qū)別
本篇文章是對(duì)posix與perl標(biāo)準(zhǔn)的正則表達(dá)式區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php中0,null,empty,空,false,字符串關(guān)系的詳細(xì)介紹
本篇文章是對(duì)php中0,null,empty,空,false,字符串關(guān)系進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP接口繼承及接口多繼承原理與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了PHP接口繼承及接口多繼承原理與實(shí)現(xiàn)方法,簡(jiǎn)單描述了接口繼承與多接口繼承的概念、原理,并結(jié)合實(shí)例形式給出了php接口繼承的具體實(shí)現(xiàn)與使用等操作技巧,需要的朋友可以參考下2017-10-10
php上傳后臺(tái)無(wú)法收到數(shù)據(jù)解決方法
在本篇文章里小編給大家整理的是關(guān)于php無(wú)法收到數(shù)據(jù)的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。2019-10-10
完美利用Yii2微信后臺(tái)開(kāi)發(fā)的系列總結(jié)
Yii2是一個(gè)高性能,基于組件的 PHP 框架,這篇文章詳細(xì)的給大家介紹了利用Yii2開(kāi)發(fā)微信后臺(tái)。我們一起來(lái)看看。2016-07-07
php實(shí)現(xiàn)自定義中獎(jiǎng)項(xiàng)數(shù)和概率的抽獎(jiǎng)函數(shù)示例
這篇文章主要介紹了php實(shí)現(xiàn)自定義中獎(jiǎng)項(xiàng)數(shù)和概率的抽獎(jiǎng)函數(shù),涉及php字符串、數(shù)組的概率運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-05-05

