问题标签 [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 回答
47 浏览

php - 使用“file://”流包装器或直接放置文件路径(PHP)之间的区别

我读到另一个话题

file('file:///path/to/file.txt'); file('/path/to/file.txt');

是等价的。那么,使用 file:// 流包装器有什么意义呢?

是否存在一些差异?

0 投票
2 回答
92 浏览

php - 加密原生 PHP 流

我正在研究在 PHP 中对称加密本机流的可能性。我发现了很多信息,展示了如何使用现代和推荐的库(例如钠和 openssl)对普通字符串(完全在内存中)执行这种加密,但是我发现的关于加密原生 PHP 流的唯一提及是这里但是该页面和评论表明不使用它更安全(并且它被标记为已弃用)。

我还没有找到如何在流上安全地使用本机 PHP 加密过滤器的实际示例。

我发现这个适用于 Guzzle PSR-7 流对象,但不适用于原生 PHP 流。不幸的是,这不能与其他期望本地流的库互操作。

我对流感兴趣,而不是加密完整文件,因为这样可以避免所有内存和大小限制。

是否可以使用文档中提到的流加密过滤器对流进行加密,但不推荐和弃用,因为它很容易出错,或者根本不可能安全地进行?

0 投票
1 回答
55 浏览

php - 如何从 'php://output' 流中读取内容

根据文档php://output只是一个可写流,有没有办法读取作为内容流向它的任何内容(可能是一个字符串);

尝试了上面的代码,但没有用。

0 投票
0 回答
150 浏览

php - 如何在谷歌云 PHP 流包装器中将选项传递给 stream_open

我正在尝试从谷歌云存储中提供大型音频文件并寻求支持。

我很难理解 php fopen 和 google 流包装器一起工作。当 fopen 被调用时,它会立即从谷歌 StreamWrapper 类中调用 stream_open。但是我无法通过 fopen 上下文向它传递选项。我想将按位选项 0b10000 设置为其 STREAM_MUST_SEEK 选项。$flags 参数始终为 0。

https://www.php.net/manual/en/streamwrapper.stream-open

文档显示您可以设置至少两个选项,但它没有说明您可以在哪里设置它们。

没有 $flag 设置为 0b10000 我得到:

如果我将 $flags 设置为 0b10000 它可以工作并支持搜索。

0 投票
0 回答
39 浏览

php - 如何为非常大的文件替换流中的字符串

如何替换无法完全加载到内存中的文件中的字符串
我可以一次读取几个字节,但我如何确定我没有读到我的短语中间?
我想我应该保存最后strlen(phrase)的字节长度并尝试替换 last+current
这是我的 WIP

0 投票
0 回答
23 浏览

php - 使用 streamWrapper 时的 SplFileInfo::getRealPath()

我正在使用一个创建 SplFileInfo 对象然后在它们上调用 getRealPath() 的包。

我想使用字符串而不是文件,所以我试图注册一个这样的流包装器:

这样我就可以使用类似的文件名调用包mywrapper://file.txt,并在读取文件时让 MyFileStream 返回字符串。

但是,该包正在调用 SplFileInfo::getRealPath() 并返回 FALSE 然后崩溃。

查看https://www.php.net/manual/en/class.streamwrapper.php,我看不出我能如何影响它。有办法吗?

0 投票
1 回答
36 浏览

php - 如何将流 php://temp 内容放入 html

如果我在邮递员中尝试,我是从音频 API 中得到的。

在此处输入图像描述

问题是我不知道如何检索它并将其放入 html 中的音频中。我尝试将 php://temp 放在音频 html 中的 src 中,但它不起作用。因为我使用了 guzzle 我尝试使用$response->getBody()->getContents(),我认为它与 php 中的 file_get_contents() 相同,但是当我打印它时它什么也没显示。请帮助邮递员它可以工作,但我不知道如何得到它。

0 投票
0 回答
36 浏览

php - 是否可以使用 glob 模式来匹配 zip 内容?

我想我可以方便地使用 glob 模式列出 zip 文件中的任何内容。但这似乎不起作用。有办法吗?

zip:// 流包装器似乎根本不返回目录内容。

该文档没有太大帮助: https ://www.php.net/manual/en/wrappers.compression.php

0 投票
1 回答
84 浏览

php - 如何将 php 包装器中的文件读取为 utf-16

有没有办法使用 PHP 的流包装器读取特定字符编码(如 UTF-16)的文件,就像我可以使用读取 base64 编码的文件一样php://filter/convert.base64-decode/resource=file.txt