recherche

Maison  >  Questions et réponses  >  le corps du texte

linux - PHP utilise Curl pour traiter les connexions URL de téléchargement de fichiers et rencontre quelques problèmes

  1. La connexion url est un lien de téléchargement pour un fichier compressé .gz

  2. Généralement, la méthode d'utilisation de curl pour traiter les données afin de renvoyer des données utilisera

  3. Mais en ce qui concerne le traitement des fichiers téléchargés, j'étais confus.

  4. Merci de me donner quelques conseils des maîtres que vous avez rencontrés

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;
    }
習慣沉默習慣沉默2755 Il y a quelques jours861

répondre à tous(2)je répondrai

  • 给我你的怀抱

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

    一般返回数据的使用curl处理数据的方法会使用
    Écrivez simplement le contenu renvoyé en utilisant file_put_contents

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

    répondre
    0
  • 女神的闺蜜爱上我

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

    Fais-le comme ça

     //分离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);
        }  

    répondre
    0
  • Annulerrépondre