繁体   English   中英

将.csv文件保存到桌面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM