我正在使用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?
有人可以指导我吗?
非常感谢。
答案 0 :(得分:3)
<?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);
}
答案 1 :(得分: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);
?>
答案 2 :(得分:0)
您无法保存到桌面! 您的浏览器在沙箱中运行,沙盒是一个防止访问文件系统的清理环境。
答案 3 :(得分:0)
您的脚本在服务器上运行。您的文件位于桌面上。即使你有本地服务器(如xamp,uniformserver等),这些(也应该)也与你的整个主机文件系统分开。所以答案是 - 除非你从主机上的命令行运行php脚本,否则你无法达到。