PharData extractTo方法在linux环境下提取.tar.gz失败

2024-02-23

我想将 .tar.gz 文件提取到特定文件夹中。我使用 cURL 从 MailChimp 批量操作下载 .tar.gz 文件。我使用下面的代码来提取 tar 文件。

$phar = new \PharData('upload/test.tar.gz');
  $phar->extractTo('upload/',null, true);

它正在windows环境下运行。但在 Linux(Ubuntu) 上,运行上述代码时出现以下错误。

 Uncaught exception 'PharException' with message 'Extraction from phar "upload/test.tar" failed: Cannot extract ".", internal error'

我已经为上传文件夹设置了默认的 apache 用户和组权限。

  sudo chown -R www-data:www-data upload/

PHP 版本:5.6.24

我附上了示例 .tar.gz 文件:http://www.simbanic.com/_projects/test/05c902076e.tar.gz http://www.simbanic.com/_projects/test/05c902076e.tar.gz


我对 MailChimp 批量响应存档也有同样的问题。 愚蠢的解决方案,但它有效......

$p = new PharData($tarGzArchive, RecursiveDirectoryIterator::SKIP_DOTS);
$p->convertToData(Phar::ZIP);

$zip = new ZipArchive;
$res = $zip->open($createdZipArchive);
if ($res === TRUE) {
    $zip->extractTo($destinationPath);
    $zip->close();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PharData extractTo方法在linux环境下提取.tar.gz失败 的相关文章

  • 如何从symfony2中的现有表生成实体?

    我有带有一些字段的表 my table 我想在 MyBundle 中使用 my table 生成实体 但我不想重新创建 MyBundle 中的所有实体 我怎样才能做到这一点 这是你可以做到的方法 第一步 要求Doctrine自省数据库并生成
  • 如何对 Laravel Mailable 进行断言

    在测试中 我想使用以下方法对 Mailable 做出一些断言Mail assertSent 像这样 Mail assertSent MyMailable class function mail use user return mail gt
  • PHP memcache - 检查池中是否有可用的服务器?

    我有以下代码 cluster local array host gt 192 168 1 1 port gt 11211 weight gt 50 cluster local2 array host gt 192 168 1 2 port
  • 读取用 php 分块的范围块

    我有一个输入字段 可以在其中粘贴下载网址 之后 我使用 AJAX 请求来获取文件信息 例如 headerinfo 内容长度 mime 类型 如果我使用curl 接受范围 然后 我开始连续循环 xhr2 请求 其中包含我的 php 文件的范围
  • $mysqli->fetch_object($result) 不起作用

    我正在学习mysqli 我正在尝试从表 tbllogin 中获取数据 DATABASE CONNECTION hostname p localhost database dbLogin username user1 password pwd
  • Joomla 模型视图控制器 (MVC) 如何工作?

    我是 Joomla 的新手 我想知道 Joomla 控制器如何将数据传递给模型 模型传递给控制器 以及控制器传递给视图 虽然这可能是一个愚蠢的问题 但我确实试图找到答案 我希望我能从 stackoverflow 大家庭得到一些帮助 控制器获
  • 如何在 PHP 中检查特定类型的对象

    我有一种方法 它接受 PDO 对象作为参数 允许用户使用现有连接 而不是打开新连接的方法 并节省资源 public static function databaseConnect pdo null 我知道is object 检查参数是否是一
  • html iframe 中的字符错误

    对不起我的英语我说西班牙语 我正在尝试显示多个php and mysql将在 iframe 内显示的注册 问题是 iframe 向我显示特殊字符的错误 例如 重音符号 感叹号等 D ndecuestamenosyseconsumem s 这
  • Google 站点地图日期格式

    我需要 php 中站点地图的日期格式 我怎样才能做到这一点 这个输出对吗
  • 如何使用 Laravel Scheduler 命令将输出重定向到 STDOUT?

    我的调度程序应用程序运行到 Docker 容器中 Laravel 调度程序由主管管理并执行到容器中 我通过以下方式管理输出重定向 http veithen github io 2015 01 08 supervisord redirecti
  • PHP 5 的 HTML 表单库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个QuickForm替代品 QF 存在性能问题 例如组合框中的许多选项 我还想要一些更面向对象的东西 比如 Zend Form
  • 用于货币转换的php脚本

    我正在寻找一个可以进行货币转换的 php 脚本 在哪里可以找到与 codeigniter 配合使用的工具 取自http www ecb europa eu stats exchange eurofxref html index en htm
  • SO 日期计算和格式化

    SO 使用什么脚本来显示日期 因为它的格式和逻辑显示似乎相当不错 我不确定 StackOverflow 使用什么 但最常见的时间戳表示之一是 twitter 所做的 它将时间戳显示为a moment ago 30 seconds ago x
  • 无法识别 php 变量

    我在两个文件中分别有以下代码 文件一 php
  • 如何在 Laravel 中返​​回唯一值

    这里我有这个示例数据 它根据类别产品返回 我需要限制重复值 Raw JSON brand id fe877b45 8620 453a 8805 63f0cbd80752 name No Brand slug no brand descrip
  • 为什么 $_SERVER["PHP_AUTH_USER"] 和 $_SERVER["PHP_AUTH_PW"] 没有设置?

    在开始之前 我想指出我浏览过 Stack Overflow 并发现了其他类似的问题 PHP AUTH USER 未设置 https stackoverflow com questions 3663520 php auth user not
  • 'SQLSTATE[HY093]:参数数量无效:绑定变量的数量与令牌数量不匹配'[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我收到 SQLSTATE HY093 的错误 参数编号无效 绑定变量的数量与标记的数量不匹配 if isset POST cada
  • 解决多个 jQuery 文件之间的冲突

    我的项目中有多个 jquery 文件 我正在使用jquery1 4 2使用facebox 但我也需要原型和scriptacolous脚本 我用过 jQuery noconflict 在我的代码中 但它不起作用 这是网址http mlep c
  • regex php - 查找 div 中具有特定 ID 的内容

    我确信这是一个简单的问题 尽管我在谷歌上进行了如此多的搜索和搜索 但我似乎无法弄清楚这有什么问题 我在此页面上的其他区域使用类似的表达式来准确返回我想要的内容 但是 我无法让这个特定的位返回我想要的东西 所以也许有人可以帮助我 我有一个带有
  • 如何在 PHP 中替换/转义 U+2028 或 U+2029 字符以阻止我的 JSONP API 崩溃

    好的 我正在运行一个公共 JSONP API 数据由我的 PHP 服务器提供 我刚刚读了这篇文章 JSON 不是的 JavaScript 子集 作者 Magnus Holm 2011 年 5 月 http timelessrepo com

随机推荐