|
php中模拟POST传递数据的两种方法分享,有时候需要模拟提交数据方便采集,需要的朋友可以参考下。
方法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);
|
|