使用php下载git repo
我想在用户执行操作之后从github下载存储库文件。代码将无法按预期工作。当代码运行时,将创建使用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,
.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版本,并在必要时进行更新。