【问题标题】:Download repo from GitHub in PHP?用 PHP 从 GitHub 下载 repo?
【发布时间】:2023-04-04 10:29:01
【问题描述】:

使用 PHP 将 GitHub 存储库的文件下载到目录中的最佳方法是什么。

我已尝试下载 zipball 并将其解压缩,但我正在努力寻找解压缩 zip 文件的好方法。

【问题讨论】:

  • 这是关于依赖管理还是关于程序下载和解压缩?
  • 尝试做作曲家之类的事情? github.com/composer/composer/blob/…
  • @Will 程序化下载和解压
  • @scalopus 客户希望继续使用 PHP 5.2.6,我认为 composer 不支持。

标签: php github github-api


【解决方案1】:

只需下载 zipball 并使用this 之类的工具,或unzip 之类的命令行工具(大多数系统上都有)。

【讨论】:

    【解决方案2】:

    依赖管理

    使用composer

    Composer 是一个 PHP 的依赖管理工具(类似于 node 的 npm)。 如果您还没有使用 composer,请转到 http://getcomposer.org/ 并阅读 composer。

    程序化下载和解压

    既然您已经提到您已经能够下载 zip 文件,我将专注于解压缩它。如果您正在使用 composer(就像您应该使用的那样),您可以在 https://packagist.org 处搜索包存储库。快速搜索zip 给了我一堆结果,从功能齐全的存档管理库到简单的解压缩实用程序。 This 使用起来似乎很简单,很可能会成功。

    // https://github.com/vipsoft/Unzip/blob/master/README.md
    
    use VIPSoft\Unzip\Unzip;
    
    $unzipper  = new Unzip();
    $filenames = $unzipper->extract($zipFilePath, $extractToThisDir);
    

    PHP 5.2.6 中的程序化下载和解压

    感谢this 的提问,我了解了 PHP 5.2.0 中引入的 PHP 的 zip 扩展。

    看起来使用 zip 会遵循类似于以下代码的内容

    $zip = new ZipArchive;
    if (true === $zip->open($archiveFileName)) {
        $zip->extractTo($destination);
        $zip->close();
    } else {
        // handle error
    }
    

    希望您的客户也不会反对安装 php zip 扩展。

    【讨论】:

    • 我的客户想继续使用 PHP 5.2.6,composer 不支持。
    • @Jamesking56 在我的答案中添加了一个部分,希望对您的情况有用。
    • 对不起,我的回复晚了,ZipArchive 类方法工作了,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 2022-11-04
    • 2013-02-01
    • 2023-03-25
    相关资源
    最近更新 更多