使用php通过http / https进行POST参数的无提示下载

时间:2014-05-27 08:31:27

标签: php http post https

我有一个php脚本,需要通过http / https下载文件,并为请求指定POST参数。

应该没有浏览器弹出窗口,只需要静默下载,例如〜/。 不幸的是,包装wget不是一个允许的解决方案。

有没有简单的方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用:

  1. file_get_contents()功能 - IMO是通过HTTP(或HTTPS)获取(或POST)简单内容的最简单方法。用法示例:

    <?php
    $opts = array('http' => array(
        'method'  => 'POST',
        'content' => $body, // your x-www-form-urlencoded POST payload
        'timeout' => 60,
    ));
    $context  = stream_context_create($opts);
    $result = file_get_contents($url, false, $context, -1, 40000);
    
  2. CURL - 另一种发送POST请求的简便方法。最基本的代码示例:

    <?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
    // $body is your x-www-form-urlencoded POST payload
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec ($ch);
    curl_close ($ch);
    
  3. 您拥有或可以下载的任何其他PHP HTTP客户端(Zend_Http_Client,HTTP_Client,Whatever_Client)。