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);