php自動提交表單的方法(基于fsockopen與curl)
本文實例講述了php基于fsockopen與curl實現(xiàn)自動提交表單的方法。分享給大家供大家參考,具體如下:
fsockopen和curl都可以做php自動提交表單
1. fsockopen方法:
php代碼:
<?php
/*-----------------------------------------------------------
*功能:使用PHP socke 向指定頁面提交數(shù)據(jù)
*作者:果凍 說明: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); ?>
更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《php socket用法總結(jié)》、《php curl用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)據(jù)結(jié)構與算法教程》、《PHP數(shù)學運算技巧總結(jié)》、《php日期與時間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
- php+html5使用FormData對象提交表單及上傳圖片的方法
- 使用PHP和HTML5 FormData實現(xiàn)無刷新文件上傳教程
- php提交表單時判斷 if($_POST[submit])與 if(isset($_POST[submit])) 的區(qū)別
- php 多個submit提交表單 處理方法
- 提交表單后 PHP獲取提交內(nèi)容的實現(xiàn)方法
- PHP提交表單失敗后如何保留已經(jīng)填寫的信息
- php HTML無刷新提交表單
- PHP防止跨域提交表單
- php防止用戶重復提交表單
- Ajax提交表單時驗證碼自動驗證 php后端驗證碼檢測
- PHP使用HTML5 FormData對象提交表單操作示例
相關文章
PHP為表單獲取的URL 地址預設 http 字符串函數(shù)代碼
有時需要接受一些表單中的網(wǎng)址輸入,但用戶很少添加 http:// 字段,此代碼將為網(wǎng)址添加該字段。2010-05-05
php中0,null,empty,空,false,字符串關系的詳細介紹
本篇文章是對php中0,null,empty,空,false,字符串關系進行了詳細的分析介紹,需要的朋友參考下2013-06-06
php實現(xiàn)自定義中獎項數(shù)和概率的抽獎函數(shù)示例
這篇文章主要介紹了php實現(xiàn)自定義中獎項數(shù)和概率的抽獎函數(shù),涉及php字符串、數(shù)組的概率運算相關操作技巧,需要的朋友可以參考下2017-05-05

