【发布时间】:2014-02-21 02:08:31
【问题描述】:
我正在尝试让我的代码以 .csv 格式下载文件,我确实管理了它并且它运行良好,除了它包含一个包含 (#Resource ID XX) 的附加字段,这是我不想要的。我做了一些浏览并阅读了许多答案,说应该使用以下代码:
$fp = fopen('php://output', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
rewind($fp);
$output = stream_get_contents($fp);
fclose($fp);
这给了我以下错误:rewind(): stream does not support seeking in /var/www/opencart/admin/model/catalog/upload.php on line 30,据我了解,这通常是因为 fopen 用于外部的东西,我的不是我不相信..所以我不确定是什么问题是吗?
【问题讨论】:
-
那么你为什么要做
rewind()和$output = stream_get_contents($fp);?除非你打算用 $outut 做点什么,否则它们是多余的 -
顺便说一句,
php://output正在将数据发送到输出流(有效地发送到客户端的浏览器,假设它是一个 Web 请求),所以应该被认为是外部的......一旦你开始发送数据到浏览器,怎么调回来改呢? -
我稍后使用带有标题的输出来下载文件。另外我认为 php://output 也是外部的,但另一篇文章建议它作为解决我遇到的问题的方法
-
将
php://output视为 echo: 的等价物:除非您也使用输出缓冲,否则它将发送到浏览器(用于 Web 请求)。如果需要添加标头,请在之前添加它们将数据发送到php://output,或使用临时文件,或输出缓冲 -
我认为它缓存了它,我不认为这是一个网络请求
标签: php