-1

我正在使用 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 的路径?

有人可以指导我吗?

非常感谢。

4

4 回答 4

4
<?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);
}
于 2012-09-08T18:58:00.057 回答
1

如果您谈论客户端的桌面,则不能使用这种方式。

无论如何,为什么不给您的客户一种下载文件的方法呢?

更新:对 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);

?>
于 2012-09-08T18:50:56.860 回答
0

您无法保存到桌面!您的浏览器在沙盒中运行,沙盒是一个防止访问文件系统的净化环境。

于 2012-09-08T18:44:58.437 回答
0

您的脚本在服务器上运行。您的文件在桌面上。即使您有本地服务器(如 xamp、uniformserver 等),这些也(并且应该)与您的整个主机文件系统分开。所以答案是——除非你从主机上的命令行运行你的 php 脚本,否则你无法做到这一点。

于 2012-09-08T18:48:07.077 回答