PHP I/O内存流在文档开头创建空行
我是php新手,对你们有疑问。 现在,我正在创建一个php脚本,希望在其中使用以下内容:PHP I/O内存流在文档开头创建空行,php,memory,stream,Php,Memory,Stream,我是php新手,对你们有疑问。 现在,我正在创建一个php脚本,希望在其中使用以下内容: $file = fopen('php://memory','w'); 然后,我使用fputcsv,在这里我添加了几个数组来填充这个文档。 在最后一部分中,我说我要建立downloadeble链接 header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename="service.csv"')
$file = fopen('php://memory','w');
然后,我使用fputcsv,在这里我添加了几个数组来填充这个文档。
在最后一部分中,我说我要建立downloadeble链接
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="service.csv"');
我的方法如下所示:
public function exportToCsv($Id){
$file = fopen('php://memory','w');
$someDetails = $this->some_model->getSomeDetail($Id);
$details = array(
array("Subject", "Start Date", "Start Time", "End Date", "End Time", "Where"),
array("test subject","test date","test time","test end date","etc..."));
foreach ($details as $detail) {
fputcsv($file, $detail);
}
fseek($file,0);
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="file.csv"');
fpassthru($file);}
当我的浏览器下载这个文件并打开它时,一切都很好,但在文件的开头,有一行是空的,我不明白为什么会发生,我如何才能删除这一行
谢谢你的描述
Marek1)您应该检查PHP标记(
)前是否有任何空行/空格
2) 尝试添加
ob_end_clean()代码>就在您的fpassthru($file)之前代码>,这将清除缓冲区,您将确保缓冲区中没有任何内容。php标记前后是否有空格/空行?()不,我使用了CodeIgniter框架,这段代码是在controller中编写的。未找到空行/空格。当我打开创建的文档时,第一行为空,其他行为空。我忘了提到。。所有这些只有在我使用路径时才会发生”php://memory“或输出,。。。当我写像“C:/path/to/folder”这样的路径时,一切都很好,没有创建空行。。。只有“php://memory“在开始处创建空行尝试添加ob_end_clean();就在您的fpassthru($file)之前;多好的建议啊!它起作用了!我想吻你:谢谢没问题,很高兴它成功了!我将重写我的评论作为回答,以便您可以接受:)