Grabbing CSV over cURL in PHP

前端 未结 4 887
别跟我提以往
别跟我提以往 2021-01-17 05:04

Unfortunately, I cannot use either fopen or file_get_contents, so my working script has become a broken one using cURL:

$ch = curl_init();
curl_setopt($ch, C         


        
相关标签:
4条回答
  • 2021-01-17 05:25

    Set CURLOPT_RETURNTRANSFER to 1 so you get something into $tmp, otherwise curl_exec outputs the csv directly (and before you send the headers). See http://www.php.net/manual/en/function.curl-setopt.php

    0 讨论(0)
  • 2021-01-17 05:26

    By default curl_exec returns a boolean. You need to set the CURLOPT_RETURNTRANSFER option to 1 or true to get the transfer payload returned.

    0 讨论(0)
  • 2021-01-17 05:43

    Ok there could be a couple of places which went wrong, most likely the $tmp variable will be your key.

    I am assuming the $url and $start variables have been declared correctly

    First thing I would suggest is to do something along the lines of:

        if( ! $tmp = curl_exec($ch))
            {
               echo curl_error($ch);
            } 
    
        else
        {
    
            header("Content-type: application/csv");
            header("Content-Disposition: attachment; filename=$start.csv");
            header("Pragma: no-cache");
            header("Expires: 0");
            echo $tmp;
        }
        curl_close($ch);
    

    Might give you an idea about what is going wrong

    0 讨论(0)
  • 2021-01-17 05:44

    I believe that curl_exec($ch) will not return a string unless you use curl_setopt($ch,CURLOPT_RETURNTRANSFER,true) first.

    0 讨论(0)
提交回复
热议问题