两种模拟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);

相关内容:

Leave a comment

10 Comments.

  1. 刚好能用上,不错!

  2. curl 还可以发送二进制
    异步文件同步什么的都可以做

  3. 我只知道get 和post 两种哈。。。嘿嘿。。

  4. 我也正在学这个呢,不过学的很浅

  5. 我觉得确实是这样的,写的不错。

  6. 流氓兔来了! 支持博主一下!!

  7. 我现在对PHP越来越爱了 :razz:

  8. 静以修身,俭以养德,犯其至难,图其致远。
    很久没更新了,前些日子你不是再搞JAVA么?怎么样了。

  9. 这个真是太难了!理不出头绪

发表评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

有人回复时邮件通知我