[英]Save a .csv file to desktop
我正在使用PHP开发脚本,以将文件另存为.csv文件到桌面。
我从PHP手册中找到了此代码示例。
<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
我在桌面上创建了file.csv。 我的问题是我找不到在桌面上打开文件以及写入和保存的正确路径。 ($ fp = fopen('file.csv','w'))
是否应该显示我存储网站的服务器的路径,以及从那里到桌面的file.csv的路径?
有人可以指导我吗?
非常感谢你。
<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
header('Content-type: text/csv');
header("Content-Disposition: attachment;filename=file.csv");
// stream
$f = fopen('php://output', 'a');
foreach ($list as $fields) {
fputcsv($f, $fields);
}
如果您谈论客户端的桌面,则不能使用这种方式。
无论如何,为什么不给客户一种下载文件的方式?
更新:从Amado Martinez的回答中做了一点改进
<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-type: text/csv');
header("Content-Disposition: attachment;filename=file.csv");
header("Content-Transfer-Encoding: binary");
$fp = fopen('php://output', 'a');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
您无法保存到桌面! 您的浏览器在沙盒中运行,沙盒是经过清理的环境,可防止访问文件系统。
您的脚本在服务器上运行。 您的文件在桌面上。 而且,即使您有本地服务器(如xamp,uniformserver等),它们(也应该)都与整个主机文件系统分开。 因此,答案是-您无法达到目标,除非您从主机上的命令行运行php脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.