如何使用PHP api下载GitHub存储库作为zip存档?

时间:2013-08-03 08:15:16

标签: php file download repository

我正在尝试使用php api下载Github存储库作为zip。有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

你可以尝试

file_put_contents("master.zip", 
    file_get_contents("https://github.com/{group}/{project}/archive/master.zip")
);

但请确保在allow_url_fopen中设置php.ini,然后您就可以轻松使用file_get_contents()

答案 1 :(得分:1)

您可以将这两个拼图组合在一起:

php下载文件:https://stackoverflow.com/a/3938551/2536029

github zips:https://github.com/ $ USER / $ REPO / archive / $ BRANCH.zip 例如https://github.com/bpowers/psm/archive/master.zip

答案 2 :(得分:0)

首先,使用以下格式构建一个URL: https://api.github.com/repos/:owner/:repo/:archive_format/:ref

然后,使用curl访问该网址,但不要忘记:

  • 有效关注位置(CURLOPT_FOLLOWLOCATION),设置为true。
  • 分配用户代理(CURLOPT_USERAGENT),例如' Mozilla / 5.0(Windows NT 5.1; rv:23.0)Gecko / 20100101 Firefox / 23.0'。
  • 如果存储库是私有的,请使用您的用户名和密码(或令牌)进行身份验证,将CURLOPT_USERPWD设置为$ youruser。':'。$ yourpassortoken。
  • 您可以使用CURLOPT_FILE直接下载到文件,只需将该选项设置为先前打开的使用fopen创建的文件指针($ filename,' w')。

抱歉,没有示例代码,但说明很清楚。它有效。