【问题标题】:Unexpected problems with PHP PHARPHP PHAR 的意外问题
【发布时间】:2012-01-02 10:37:47
【问题描述】:

在使用 PHP 5.3 PHAR 档案进行一些测试/编写脚本/播放后,我发现了一些问题。

全局

PHAR 不适用于 glob。既不作为包装器 (http://www.php.net/manual/en/phar.using.stream.php#104320) 也不作为函数调用。

在我的测试项目中,我必须遍历 PHAR 中的文件,并通过与 glob 等效的正则表达式过滤结果。

imagettfbbox

我不知道为什么,但是 imagettfbbox 也不理解 PHAR 流包装器。

这里最简单的解决方案是通过 copy() 提取文件。 (PHAR::extractTo 返回一个没有堆栈跟踪和行号的异常。)

还有其他惊喜,我应该期待吗?还有其他已知问题吗?它们是否记录在任何地方?

【问题讨论】:

  • 请考虑将您的发现添加到 PHP 的错误数据库bugs.php.net
  • 这仍然是 PHP 7.2 的问题,但您也许可以使用 scandir() 解决该问题。

标签: php glob phar


【解决方案1】:

silex 微框架作为 phar 文件分发。我们已经记录了我们遇到的大部分问题in the pitfalls section of the documentation(存档副本)。

注意:这主要是从用户的角度来看。

【讨论】:

  • 没有硅橡胶的phar分布?
【解决方案2】:

glob:我不认为 glob 支持流,所以这不会特定于 phar://,而是任何流包装器。

imagettfbbox:我觉得也一样,不支持流封装,只支持裸文件。

还有其他功能,你也会遇到同样的情况。例如,ZIP 类也不能处理流。

并不是所有的流包装器都支持流包装器堆叠,例如一个包装器在另一个包装器上运行。

随时在 php bugtracker 中打开功能请求和/或支持 PHP 开发,以便为您需要的组件引入更好的流支持。

松散相关: In memory download and extract zip archive

【讨论】:

  • 是否存在流问题的方法/类列表?
  • 我不知道,否则我会将其添加到答案中。如果您找到了,请随时添加。
猜你喜欢
  • 2013-08-21
  • 2014-06-29
  • 1970-01-01
  • 2023-03-17
  • 2020-03-29
  • 2010-12-30
  • 1970-01-01
  • 1970-01-01
  • 2020-04-05
相关资源
最近更新 更多