php中模拟POST传递数据的两种方法分享

时间:2022-08-22 17:34:37

方法1 

复制代码代码如下:


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://192.168.1.135/turntable/get_jump.php"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $array); 
curl_exec($ch); 
curl_close($ch); 


方法2 

复制代码代码如下:


$data['uid'] = $this->uid; 
$data['efforts'] = $res['efforts']; 
$data['breakthrough'] = $res['breakthrough']; 
$data['target'] = $res['target']; 
$str = ''; 
foreach ($data as $k=>$v) { 
if (is_array($v)) { 
foreach ($v as $kv => $vv) { 
$str .= '&' . $k . '[' . $kv . ']=' . urlencode($vv); 

} else { 
$str .= '&' . $k . '=' . urlencode($v); 


$context = 
array('http' => 
array('method' => 'POST', 
'header' => 'Content-type: application/x-www-form-urlencoded'."\r\n". 
'User-Agent: Manyou API PHP Client 0.1 (non-curl) '.phpversion()."\r\n". 
'Content-length: ' . strlen($str), 
'content' => $str)); 
$contextid = stream_context_create($context); 
$sock = fopen('http://192.168.1.135/turntable/get_jump.php', 'r', false, $contextid); 
if ($sock) { 
$result = ''; 
while (!feof($sock)) { 
$result .= fgets($sock, 4096); 

fclose($sock);