0

我正在尝试使用 php api 将 Github 存储库下载为 zip。谁能帮我解决这个问题?

4

3 回答 3

4

你可以试试

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

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

于 2013-08-03T08:29:47.420 回答
1

您可以组合这两个拼图:

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

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

于 2013-08-03T08:18:39.670 回答
1

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

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

  • 主动关注位置 (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') 创建的先前打开的文件指针。

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

于 2018-04-24T01:39:21.223 回答