php 生成 csv文件
我想做一个按钮,按下之后,在制定的文件夹下生成一个CSV文件,并不是那种有下载提示的,只是生成文件,保存到指定文件夹下,文件中要有页面中表格的数据。谢谢!急!!...
我想做一个按钮,按下之后,在制定的文件夹下生成一个CSV文件,并不是那种有下载提示的,只是生成文件,保存到指定文件夹下,文件中要有页面中表格的数据。谢谢!急!!
展开
3个回答
展开全部
给你写了一段演示代码.
如果觉得还行,加点分.
<?php
$filename = 'test.csv';
$fp = fopen($filename,'w');
if(!$fp){
echo "不能打开文件 $filename";
exit;
}
$data = array(
array(
'id'=>'1',
'cid'=>'2',
'name'=>'这是第一个开户名称',
'account'=>'3323423432432',
'bank'=>'建设银行' ,
),
array(
'id'=>'2',
'cid'=>'3',
'name'=>'这是第二个开户名称',
'account'=>'3323423432433',
'bank'=>'工商银行' ,
),
);
//我的编码是gbk,如果是utf-8,使用转码语句 mb_convert_encoding('申请ID','gb2312','UTF-8').',';
$csv_content = '';
$csv_content .= '申请ID,';
$csv_content .= '合同编号,';
$csv_content .= '开户名称,';
$csv_content .= '银行账号,';
$csv_content .= '开户行';
$csv_content .= "\n\r";
foreach ($data as $ditem){
//echo $ditem['id'];
$csv_content .= $ditem['id'].',';
$csv_content .= $ditem['cid'].',';
$csv_content .= $ditem['name'].',';
$csv_content .= $ditem['account'].',';
$csv_content .= $ditem['bank'];
$csv_content .= "\n\r";
}
if (fwrite($fp, $csv_content) === FALSE) {
echo "不能写入到文件 $filename";
exit;
}
fclose($fp);
?>
如果觉得还行,加点分.
<?php
$filename = 'test.csv';
$fp = fopen($filename,'w');
if(!$fp){
echo "不能打开文件 $filename";
exit;
}
$data = array(
array(
'id'=>'1',
'cid'=>'2',
'name'=>'这是第一个开户名称',
'account'=>'3323423432432',
'bank'=>'建设银行' ,
),
array(
'id'=>'2',
'cid'=>'3',
'name'=>'这是第二个开户名称',
'account'=>'3323423432433',
'bank'=>'工商银行' ,
),
);
//我的编码是gbk,如果是utf-8,使用转码语句 mb_convert_encoding('申请ID','gb2312','UTF-8').',';
$csv_content = '';
$csv_content .= '申请ID,';
$csv_content .= '合同编号,';
$csv_content .= '开户名称,';
$csv_content .= '银行账号,';
$csv_content .= '开户行';
$csv_content .= "\n\r";
foreach ($data as $ditem){
//echo $ditem['id'];
$csv_content .= $ditem['id'].',';
$csv_content .= $ditem['cid'].',';
$csv_content .= $ditem['name'].',';
$csv_content .= $ditem['account'].',';
$csv_content .= $ditem['bank'];
$csv_content .= "\n\r";
}
if (fwrite($fp, $csv_content) === FALSE) {
echo "不能写入到文件 $filename";
exit;
}
fclose($fp);
?>
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是我写的一段代码,你测试一下,我只写了六个表格,你可以根据需要添加。
function fputcsv4($fh, $arr)是写数组到csv文件的。
你要修改文件路径只要修改$filename变量的值就可以了。
<?php
session_start();
$_SESSION['data'] = $_POST;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>xx</title>
</head>
<body>
<div>
<form enctype="multipart/form-data" method="POST" action=#>
lbl1: <input type="text" name="lbl1" /><input type="text" name="value1" /><br />
lbl2: <input type="text" name="lbl2" /><input type="text" name="value2" /><br />
lbl3: <input type="text" name="lbl3" /><input type="text" name="value3" /><br />
<input type="submit" />
</form>
</div>
<?php
function fputcsv4($fh, $arr){
$csv = "";
while (list($key, $val) = each($arr))
{
$val = str_replace('"', '""', $val);
$csv .= '"'.$val.'",';
}
$csv = substr($csv, 0, -1);
$csv .= "\n";
if (!@fwrite($fh, $csv))
return FALSE;
}
$data = join(",",$_SESSION['data']);
echo "<p>".$data."</p>";
$filename="./aa.csv";
$handle = fopen($filename,"w+");
fputcsv4($handle,$_SESSION['data']);
fclose($handle);
?>
</body>
</html>
function fputcsv4($fh, $arr)是写数组到csv文件的。
你要修改文件路径只要修改$filename变量的值就可以了。
<?php
session_start();
$_SESSION['data'] = $_POST;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>xx</title>
</head>
<body>
<div>
<form enctype="multipart/form-data" method="POST" action=#>
lbl1: <input type="text" name="lbl1" /><input type="text" name="value1" /><br />
lbl2: <input type="text" name="lbl2" /><input type="text" name="value2" /><br />
lbl3: <input type="text" name="lbl3" /><input type="text" name="value3" /><br />
<input type="submit" />
</form>
</div>
<?php
function fputcsv4($fh, $arr){
$csv = "";
while (list($key, $val) = each($arr))
{
$val = str_replace('"', '""', $val);
$csv .= '"'.$val.'",';
}
$csv = substr($csv, 0, -1);
$csv .= "\n";
if (!@fwrite($fh, $csv))
return FALSE;
}
$data = join(",",$_SESSION['data']);
echo "<p>".$data."</p>";
$filename="./aa.csv";
$handle = fopen($filename,"w+");
fputcsv4($handle,$_SESSION['data']);
fclose($handle);
?>
</body>
</html>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-11-09 · 知道合伙人软件行家
关注
展开全部
$filename = "export_".date('Ymd').".csv";
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
//写入你的查询代码
$fp = fopen('php://output', 'a');
$print_hea = array("姓名","年龄","性别");
fputcsv($fp, $print_hea);
//下面是你的查询结果代码,把结果循环在数组中后使用
fputcsv($fp, $print_hea_new);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询