PHP模擬post提交資料方法彙總

2022-10-06 07:12:09 字數 3275 閱讀 5520

使用php模擬post傳值雖然在日常生活中用到的不是很多,但是在某些場合還是經常用到的。下面我們小編給大家整理了三種php模擬post傳值的方法,file_get_contents、curl和socket。

第一種:file_get_contents來模擬post

第二種:curl模擬post

true,

curlopt_header =>false,

curlopt_post =>true,

curlopt_postfields => $post,

);$ch = curl_init($url);

curl_setopt_array($ch, $options);

$result = curl_exec($ch);

curl_close($ch);

return $result;

}$data = curl_post("", array(『name『=>『caiknife『,『email『=>『caiknife#gmail.com『));

var_dump($data);

第三種:socket來模擬post

上面這三種方法最後看到的內容都是一樣的,都可以得到post的傳值;但是在是用socket的時候,傳送header資訊時必須要注意header的完整資訊,比如content type和content length必須要有,connection: close和post資料之間要空一行,等等;而通過socket取得的內容是包含了header資訊的,要處理一下才能獲得真正的內容。

下面給大家說下php模擬post提交請求,呼叫介面

/*** 模擬post進行url請求

* @param string $url

* @param string $param

*/function request_post($url = '', $param = '')

$posturl = $url;

$curlpost = $param;

$ch = curl_init();//初始化curl

curl_setopt($ch, curlopt_url,$posturl);//抓取指定網頁

curl_setopt($ch, curlopt_header, 0);//設定hea

curl_setopt($ch, curlopt_returntransfer, 1);//要求結果為字串且輸出到螢幕上

curl_setopt($ch, curlopt_post, 1);//post提交方式

curl_setopt($ch, curlopt_postfields, $curlpost);

$data = curl_exec($ch);//執行curl

curl_close($ch);

return $data;

}這是方法,

下面是具體的呼叫案例。

function testaction()

$post_data = substr($o,0,-1);

$res = $this->request_post($url, $post_data);

print_r($res);

}這樣就提交請求,並且獲取請求結果了。一般返回的結果是json格式的。

這裡的post是拼接出來的。

也可以改造成下面的方式。

/*** 模擬post進行url請求

* @param string $url

* @param array $post_data

*/function request_post($url = '', $post_data = array())

$o = "";

foreach ( $post_data as $k => $v )

$post_data = substr($o,0,-1);

$posturl = $url;

$curlpost = $post_data;

$ch = curl_init();//初始化curl

curl_setopt($ch, curlopt_url,$posturl);//抓取指定網頁

curl_setopt($ch, curlopt_header, 0);//設定header

curl_setopt($ch, curlopt_returntransfer, 1);//要求結果為字串且輸出到螢幕上

curl_setopt($ch, curlopt_post, 1);//post提交方式

curl_setopt($ch, curlopt_postfields, $curlpost);

$data = curl_exec($ch);//執行curl

curl_close($ch);

return $data;

}將拼接也封裝了起來,這樣呼叫的時候就更簡潔了。

function testaction()

本文標題: php模擬post提交資料方法彙總

本文位址:

php模擬post提交資料

php模擬post提交資料,用處很多,可用來 的採集,登陸等等。以程式登陸乙個論壇登入為例 php post資料的三種方法 php有三種方法可以post資料,分別為curl socket file get contents socket版本 使用方法 request by socket facebo...

PHP中模擬post提交資料的方法

本文 php post資料的三種方法 php有三種方法可以post資料,分別為curl socket file get contents socket版本 使用方法 request by socket facebook.cn restserver.php post string function r...

php 模擬POST提交

php 模擬post提交 要post的資料 argv array var1 abc var2 你好嗎 1 構造要post的字串 foreach argv as key value 去除最後乙個 if params length strlen params 2 建立socket連線 fp fsocko...