从 PHP 中的 GitHub 下载存储库


Download repo from GitHub in PHP?

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

我尝试下载zipball并提取它,但我正在努力找到提取zip文件的好方法。

依赖关系管理

使用作曲家。

Composer是PHP的依赖管理工具(类似于node的npm)。 如果您尚未使用它,请转到 http://getcomposer.org/并阅读作曲家。

编程下载和解压缩

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

// 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 中的编程下载和解压缩

多亏了这个问题,我了解了 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 扩展。

只需下载zipball并使用类似的东西,或者命令行工具,如unzip(存在于大多数系统上)。