问题标签 [php-stream-wrappers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
469 浏览

php - PHP将非常大的多部分文件发送到另一个网络服务器

我已经使用流编写了一些代码,这些流通过多种形式的帖子将文件发送到另一个网站。所以这是 php 服务器代码到 -> 另一个 web 服务器。我目前不能使用“curl”,我被限制在流中。

我的担忧(下面的评论,这里的关注)是如果我遇到一个非常大的文件,它可能会耗尽 php Web 服务器上的内存。

当使用指向 url(rest api 端点)的 php 流时,有没有办法使用 PHP 流直接写入请求流?现在在所有东西放在一起之后,它会发出一个

文件获取内容(...)

所以这里是创建和发送文件的代码片段。

0 投票
0 回答
197 浏览

php - php_user_filter::filter 消耗的字节数

根据http://php.net/manual/en/php-user-filter.filter.php消费” ,必须始终通过引用声明,应按过滤器读取和更改的数据长度递增. 在大多数情况下,这意味着您将增加每个$bucket所消耗$bucket->datalen 。 "

因此,假设您有一个块大小为 16 的块密码,并且您的输入长度为 25。此时您写入的内容$bucket->data可能是 16 字节长,尽管输入长度为 25 字节。所以应该$consumed在 16 岁或 25 岁之前?

同样,如果您输入的长度为 5,您可能想要返回PSFS_FEED_ME,所以应该$consumed是 0 或 5?

0 投票
1 回答
444 浏览

php - 将 Zend Diactoros PhpInputStream (PSR-7 StreamInterface) 包装的流传递给类似 fopen 的函数?

我必须编写一些东西来处理通过 POST 发送的 XML 文档。该文档内部包含 base-64 编码的二进制文件,因此请求可能非常大。

这有效:

但我正在使用 Zend Diactoros PSR-7 实现,所以我真的应该做这样的事情:

但是,这会导致流被转换为导致错误的字符串。

我真正需要的是:

因为:

但注意->stream是受保护的。我应该扩展Zend\Diactoros\PhpInputStream并编写一个公共方法来公开->stream吗?或者,还有更好的方法?


请注意:我正在寻找基于流的解决方案;不要将整个流作为字符串读入内存。

0 投票
0 回答
49 浏览

php - 轮询并将脚本的状态输出到命令行

我的脚本处理数据,并且像流程图一样,即将执行的操作取决于前一个操作的结果。我想在每次操作后将文本输出到命令行,并让脚本继续执行直到完成。

就像是:

  1. 对外部服务执行命令
  2. 轮询服务的状态,可能是 PENDING 或 FINISHED
  3. 向命令行输出“Still pending,将在 n 秒后再次检查”,直到状态变为 FINISHED
  4. 完成后,这样说,然后继续执行不同的命令
  5. 再次像以前一样,轮询状态,输出到命令行,直到完成......
  6. 最后,当最后一个命令完成时,输出文本,然后退出脚本。

欢迎所有指针。我假设像睡眠(n),重新检查状态,睡眠(n)等,直到状态显示它已经完成。我假设将使用流,但我不确定如何在脚本运行时输出到 PHP 中的命令行,而不是在完成后输出所有文本。

理想情况下,提示涉及原生 PHP,而不是依赖项。所有执行/输出都是通过命令行完成的。

0 投票
1 回答
2986 浏览

php - php 中的 AWS sdk Amazon S3 流包装器

我是亚马逊 s3 的新手。在我的 cakephp3.0 应用程序中,我需要将文件从一个存储桶复制到另一个存储桶。为此,我使用 composer 安装了 AWS SDK,并在我的控制器构造函数中使用凭证初始化了 s3 客户端

在我的功能中复制文件

现在我收到一个错误

在“ https://s3.mumbai.amazonaws.com/ ”上执行“ListBuckets”时出错;AWS HTTP错误:创建资源时出错:[消息] fopen():php_network_getaddresses:getaddrinfo失败:名称或服务未知[文件] /var/www/mm/Src/php/operations/vendor/guzzlehttp/guzzle/src/Handler /StreamHandler.php [line] 312 [message] fopen( https://s3.mumbai.amazonaws.com/ ): 未能打开流: php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 [文件] /var/www/ mm/Src/php/operations/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php [行] 312 Aws\S3\Exception\S3Exception

我想使用一个存储桶中的数据创建一个 zip 文件并将其复制到另一个存储桶,而不使用流将文件写入磁盘。这个错误的原因是什么?任何帮助将不胜感激。

现在,当我使用 zipstream 库时,作为流的压缩工作正常,因为我使用了代码

但同样的问题是我想将 zip 输出即时写入 bucket2。因为我的文件将包含大尺寸的视频,所以无法将其存储在磁盘中作为临时存储。它应该以 zip 的形式即时写入存储桶。

0 投票
1 回答
145 浏览

php - 从实时数据提要 php 中读取

我正在使用称为 DAP ( https://github.com/rapid7/dap ) 的东西,它有助于处理大文件处理并输出不断增长的数据列表。

例如:

此代码正常工作,它将输出 10 行 IP 地址。

我的问题是如何从 PHP 中读取这些数据 - 实际上数据馈送是连续/实时的(它将在某个时候结束)我如何处理我给出的每一行?

我已经尝试过管道,但我没有通过输出。我不想使用 exec 因为数据在不断增长。我认为这可能是一个流,但不确定是不是这样。

0 投票
1 回答
859 浏览

php - 为需要文件路径的 PHP 函数提供文件句柄

使用PHPExcel,我想从互联网上读取文件。PHPExcel 库似乎只适合打开本地文件,而不是 URL。这是我尝试过的:

这是我收到的错误:

致命错误:未捕获的异常 'PHPExcel_Reader_Exception' 带有消息'无法打开 php://memory 进行阅读!文件不存在。'

我还尝试直接传递 URL ( PHPExcel_IOFactory::load('http://opendatakit.org/wp-content/uploads/static/sample.xls'))。类似的错误。

致命错误:未捕获的异常“PHPExcel_Reader_Exception”带有消息“无法打开 http://opendatakit.org/wp-content/uploads/static/sample.xls进行阅读!文件不存在。'

编辑:还尝试了一个临时文件

这次不同的错误:

警告:pathinfo() 期望参数 1 是字符串,在第 224 行的 /project/vendor/phpoffice/phpexcel/Classes/PHPExcel/IOFactory.php 中给出的资源

警告:file_exists() 期望参数 1 是有效路径,资源在第 81 行的 /project/vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel2007.php 中给出

致命错误:未捕获的异常“PHPExcel_Reader_Exception”带有消息“无法打开资源 ID #10 进行阅读!文件不存在。'

0 投票
1 回答
524 浏览

php - 来自 Amazon S3 流包装器的 PHP CURL PUT(tcp 流)

我正在尝试(PHP)使用 S3 流包装器将文件从 Amazon S3 卷曲到 Vimeo(s3://...)并收到以下错误:

curl_setopt_array():不能将 tcp_socket/ssl 类型的流表示为 [...] 中的 STDIO 文件

有没有办法卷曲 PUT 远程文件?这是正在发送的 curl 选项:

0 投票
0 回答
205 浏览

php - php://input 读取速度非常慢

我正在尝试编写一个接受 PUT、PATCH 和 DELETE 请求方法的 API,并且我能够这样做,但我遇到了一个读取php://input速度非常慢的问题。使用 970k gif 文件解析请求需要 10-12 秒,从我添加的日志中,所有时间都花在读取php://input

正如我所说,这两个日志条目之间的时间是 10-12 秒。我究竟做错了什么?我需要更改的地方是否有 php 设置?

谢谢

0 投票
1 回答
1159 浏览

php - 对 php 流图像的 Http 请求

我有一个php文件,当你打开它时,会下载并打开一张图片。这是我的代码:

直接打开就OK了。但是当我向页面发送 ajax 请求时,我得到了一些很长的奇怪字符。(我想在 html 中显示图像src

任何想法将不胜感激。