看來樓主的截圖,寫的純粹的對(duì)curl的運(yùn)用,個(gè)人寫個(gè)簡(jiǎn)化版的??!
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),上城企業(yè)網(wǎng)站建設(shè),上城品牌網(wǎng)站建設(shè),網(wǎng)站定制,上城網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,上城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
$curl是接口頁面。。。作用是取數(shù)據(jù)然后傳遞給本頁面??!這個(gè)頁面不是來源頁面,只是一個(gè)接口文件而已??!如果你連這個(gè)頁面都不想要,那就只能在本頁面自己填寫獲取數(shù)據(jù)的代碼了??!也就不用使用到post數(shù)據(jù)了?。?/p>
$post_val是post提交所需的數(shù)據(jù),如果為空,那就是get獲取數(shù)據(jù),也就是說$curl要自帶參數(shù),這個(gè)要看你接口頁面的程序所定了??!
例子:
1.php
$b = $_GET['k'];
//這邊獲取的就是2.php拋出來的數(shù)據(jù)。。。
$get_value = curl_file_get_contents(‘2.php’,"ct=28lm=0word=".$b."co=23");
var_dump($get_value);//這邊就是你想要的代碼。。隨便你怎么處理了?。?/p>
//這個(gè)是curl的精簡(jiǎn)版。。。不用那么多代碼
function curl_file_get_contents($curl,$post_val="")
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $curl);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
if($post_val)
{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_val);
}
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
2.php(接口文件,也相當(dāng)于把方法寫在另一個(gè)文件,通過url調(diào)用此方法并回傳值給1.php!!多用于2個(gè)文件不在同一程序內(nèi),引用(include)不了,又懶得自己再寫個(gè)方法,從而通過這種方法獲取,比如說淘寶接口)
$get_key = $_POST['word']; //這邊就指明了只用能post方式獲取數(shù)據(jù)
..................(這邊就是通過獲取的$get_key來獲取數(shù)據(jù),并賦值與$value)......
return $value; //這邊把數(shù)據(jù)拋給1.php(誰調(diào)用接口的就拋給誰)
這樣寫的好處是,假如獲取$value的代碼很長(zhǎng),這樣寫可以減少代碼量??!不在同一個(gè)服務(wù)器或者框架下面的程序也可以調(diào)用。。。。(同一個(gè)框架下的代碼可以用include引入進(jìn)來?。。?/p>
先寫到著吧?。?!還有不懂的可以自己百度下或者追問。。我看到了會(huì)繼續(xù)回答的!!
方法1、最常見的方法是:$_POST['fieldname'];
說明:只能接收Content-Type:
application/x-www-form-urlencoded提交的數(shù)據(jù)
解釋:也就是表單POST過來的數(shù)據(jù)
方法2、file_get_contents("php://input");
說明:
允許讀取
POST
的
原始數(shù)據(jù)
。
和
$HTTP_RAW_POST_DATA
比起來,它給內(nèi)存帶來的壓力較小,并且不需要任何特殊的
php.ini
設(shè)置。
php://input
不能用于
enctype="multipart/form-data"。
解釋:
對(duì)于未指定
Content-Type
的POST數(shù)據(jù),則可以使用file_get_contents(“php://input”);來獲取原始數(shù)據(jù)。
事實(shí)上,用PHP接收POST的任何數(shù)據(jù)都可以使用本方法。而不用考慮Content-Type,包括
二進(jìn)制文件
流也可以。
所以用方法二是最保險(xiǎn)的方法
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
說明:
總是產(chǎn)生
$HTTP_RAW_POST_DATA
變量包含有原始的
POST
數(shù)據(jù)。
此變量?jī)H在碰到未識(shí)別
MIME
類型的數(shù)據(jù)時(shí)產(chǎn)生。
$HTTP_RAW_POST_DATA
對(duì)于
enctype="multipart/form-data"
表單數(shù)據(jù)不可用
如果post過來的數(shù)據(jù)不是PHP能夠識(shí)別的,可以用
$GLOBALS['HTTP_RAW_POST_DATA']來接收,
比如
text/xml
或者
soap
等等
解釋:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST過來的原始數(shù)據(jù)。
$_POST或
$_REQUEST
存放的是
PHP以key=value的形式格式化以后的數(shù)據(jù)。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST過來的數(shù)據(jù)取決于centent-Type的設(shè)置,即POST數(shù)據(jù)時(shí)
必須顯式示指明Content-Type:
application/x-www-form-urlencoded,POST的數(shù)據(jù)才會(huì)存放到
$GLOBALS['HTTP_RAW_POST_DATA']中
用PHP向服務(wù)器發(fā)送HTTP的POST請(qǐng)求,代碼如下:
?php
/**????
*?發(fā)送post請(qǐng)求????
*?@param?string?$url?請(qǐng)求地址????
*?@param?array?$post_data?post鍵值對(duì)數(shù)據(jù)????
*?@return?string????
*/????
function?send_post($url,?$post_data)?{????
$postdata?=?http_build_query($post_data);????
$options?=?array(????
'http'?=?array(????
'method'?=?'POST',????
'header'?=?'Content-type:application/x-www-form-urlencoded',????
'content'?=?$postdata,????
'timeout'?=?15?*?60?//?超時(shí)時(shí)間(單位:s)????
)????
);????
$context?=?stream_context_create($options);????
$result?=?file_get_contents($url,?false,?$context);?????????????
return?$result;????
}
使用的時(shí)候直接調(diào)用上面定義的send_post方法:
$post_data?=?array(
'username'?=?'username',
'password'?=?'password'
);
send_post('網(wǎng)址',?$post_data);
//這是我寫的封裝類,也就是模擬POST提交
//$durl也就是URL地址,比如
//$timeout超時(shí)時(shí)間
//$data?為POST數(shù)組
//模擬POST提交的用途,采集數(shù)據(jù),模擬用戶登錄(為什么現(xiàn)在登錄需要驗(yàn)證碼,不是為了測(cè)你智商..
更不是考你的眼力,而防止你模擬登錄..用暴力破解法強(qiáng)行破解密碼)
function?curl_file_post_contents($durl,?$timeout?=?5,?$data)?{
$ch?=?curl_init();
curl_setopt($ch,?CURLOPT_URL,?$durl);
curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);
curl_setopt($ch,?CURLOPT_TIMEOUT,?$timeout);
curl_setopt($ch,?CURLOPT_USERAGENT,?_USERAGENT_);
curl_setopt($ch,?CURLOPT_REFERER,?_REFERER_);
curl_setopt($ch,?CURLOPT_POST,?1);?//設(shè)置為POST傳輸
curl_setopt($ch,?CURLOPT_POSTFIELDS,?$data);?//添加post數(shù)據(jù)
$r?=?curl_exec($ch);
var_dump($ch);
if?($r?===?false)?{??//判斷錯(cuò)誤
echo?curl_error($ch);
}
$info?=?curl_getinfo($ch);??//能夠在cURL執(zhí)行后獲取這一請(qǐng)求的有關(guān)信息
curl_close($ch);
return?$r;
}
form表單demo:task.html
fieldset id="setFiled"
legend發(fā)布任務(wù)/legend
form action="registr.php" method="post" id="steForm"
label任務(wù)類型:/labelbr
input type="text" name="type"? id="taskType" placeholder="請(qǐng)選擇任務(wù)類型"/br
label酬nbsp;nbsp;金:/labelbr
input type="number" name="money" id="forMoney" min="1" max="1000"/label元/labelbr
label截止時(shí)間:/labelbr
input type="datetime" name="time" id="timeSubmit"/span data-year="" data-month="" data-date="" id="showDate"/spanbr
label詳細(xì)描述:/labelbr
textarea maxlength="512" name="textAray" id="msgArea"/textareabr
input type="submit" name="subMit" id="forSub" value="點(diǎn)擊發(fā)布" /
/form
擴(kuò)展資料
php接收POST數(shù)據(jù)的三種方式
1、$_POST 方式接受數(shù)據(jù)
$_POST 方式是由通過HTTP的POST方法傳遞過來的數(shù)據(jù)組成的數(shù)組,是一個(gè)自動(dòng)全局變量。
注:只能接收Content-Type:application/x-www-form-urlencode提交的數(shù)據(jù)。也就是只能接收表單過來的數(shù)據(jù)。
2、GLOBLES[‘HTTP_RAW_POST_DATA’]
如果訪問原始POST數(shù)據(jù)不是php能夠識(shí)別的文檔類型,比如:text/xml 或者soap等等,可以用$GLOBLES[‘HTTP_RAW_POST_DATA’]來接收,$HTTP_RAW_POST_DATA變量包含有原始POST數(shù)據(jù)。此變量?jī)H在碰到未識(shí)別的MIME數(shù)據(jù)時(shí)產(chǎn)生。
注:$HTTP_RAW_POST_DATA對(duì)于enctype=”multipart/form-data”表單數(shù)據(jù)不可用,也就是說使用$HTTP_RAW_POST_DATA無法接受網(wǎng)頁表單post過來的數(shù)據(jù)。
3、file_get_contents(“php://input”);
如果訪問原始POST數(shù)據(jù),更好的方法是使用file_get_content(“php://input”);對(duì)于未指定Content-Type的POST數(shù)據(jù),可以使用該方法讀取POST原始數(shù)據(jù),包括二進(jìn)制流也可以和$HTTP_RAW_POST_DATA比起來。它帶來的生存眼里更小,并且不需要任何特殊的php.ini設(shè)置。
注:php://input不能用于 enctype=”multipart/form-data”
例如:$postStr = file_get_contents("php://input"); //獲取POST數(shù)據(jù)
文章名稱:phppost數(shù)據(jù)提交 phppost請(qǐng)求
分享鏈接:http://jinyejixie.com/article4/hehoie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、、企業(yè)建站、網(wǎng)站策劃、網(wǎng)站維護(hù)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)