Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php下载git repo_Php_Curl_Github_Download - Fatal编程技术网

使用php下载git repo

使用php下载git repo,php,curl,github,download,Php,Curl,Github,Download,我想在用户执行操作之后从github下载存储库文件。代码将无法按预期工作。当代码运行时,将创建.zip文件,但生成的zip文件为空。我怎样才能解决这个问题 $url = "https://github.com/$u/$repo/archive/master.zip"; $ch = curl_init(); $f = fopen(__DIR__.'/master.zip', 'w+'); $opt = [ CURLOPT_URL => $url,

我想在用户执行操作之后从github下载存储库文件。代码将无法按预期工作。当代码运行时,将创建
.zip
文件,但生成的zip文件为空。我怎样才能解决这个问题

$url = "https://github.com/$u/$repo/archive/master.zip";
$ch = curl_init();
    $f = fopen(__DIR__.'/master.zip', 'w+');
    $opt = [
        CURLOPT_URL => $url,
        CURLOPT_FILE => $f,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_BINARYTRANSFER => true,
        CURLOPT_HEADER => false,
        CURLOPT_SSL_VERIFYHOST => false,
        CURLOPT_SSL_VERIFYPEER => false,
    ];
    curl_setopt_array($ch, $opt);
    $file = curl_exec($ch);

    curl_close($ch);
    fclose($f);

从代码中删除
CURLOPT\u RETURNTRANSFER=>true
,或将其放在
CURLOPT\u文件之前


这是因为
CURLOPT_文件
取决于设置的
CURLOPT_RETURNTRANSFER

我已经尝试过,但它将继续生成一个空白的zip文件(0字节维度)。这是因为下载不是由curl完成的吗?@user10479680为什么您认为它不是由curl下载的?您的存储库是私有的吗?因为我在代码中添加了
curl\u error()
函数,它将输出此错误消息
error:1407742E:SSL例程:SSL23\u GET\u SERVER\u HELLO:tlsv1警报协议版本
。可能与此相关。尝试检查您的curl和openSSL版本,并在必要时进行更新。