cari

Rumah  >  Soal Jawab  >  teks badan

linux - PHP menggunakan curl untuk memproses sambungan url muat turun fail, dan menghadapi beberapa masalah

  1. Sambungan url ialah pautan muat turun untuk fail mampat .gz

  2. Secara amnya, kaedah menggunakan curl untuk memproses data untuk mengembalikan data akan menggunakan

  3. Tetapi apabila ia datang untuk memproses fail yang dimuat turun, saya keliru.

  4. Tolong beri saya nasihat daripada tuan yang telah anda temui

public static function curl($url, $params = false, $ispost = 0, $https = 0)
    {
        $httpInfo = array();
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        if ($https) {
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
        }
        if ($ispost) {
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
            curl_setopt($ch, CURLOPT_URL, $url);
        } else {
            if ($params) {
                if (is_array($params)) {
                    $params = http_build_query($params);
                }
                curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);
            } else {
                curl_setopt($ch, CURLOPT_URL, $url);
            }
        }

        $response = curl_exec($ch);

        if ($response === FALSE) {
            //echo "cURL Error: " . curl_error($ch);
            return false;
        }
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $httpInfo = array_merge($httpInfo, curl_getinfo($ch));
        curl_close($ch);
        return $response;
    }
習慣沉默習慣沉默2773 hari yang lalu874

membalas semua(2)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-06-10 09:49:47

    一般返回数据的使用curl处理数据的方法会使用
    Hanya tulis kandungan yang dikembalikan menggunakan file_put_contents

    file_put_contents(__DIR__.'/yourfilename.ext', $response);

    balas
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-10 09:49:47

    Buat macam ni

     //分离header与body  
        $header = '';  
        $body = '';  
        if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') {  
            $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); //头信息size  
            $header = substr($response, 0, $headerSize);  
            $body = substr($response, $headerSize);  
        }  
       curl_close($ch);  
    
       //文件名  
        $arr = array(); $savePath = "/"; 
        if (preg_match('/filename="(.*?)"/', $header, $arr)) {  
      
            $file = date('Ym') . '/' . $arr[1];  
            $fullName = $savePath . '/' . $file;  
      
            //创建目录并设置权限  
            $basePath = dirname($fullName);  
            if (!file_exists($basePath)) {  
                @mkdir($basePath, 0777, true);  
                @chmod($basePath, 0777);  
            }  
           
            
            file_put_contents($fullName, $body);
        }  

    balas
    0
  • Batalbalas