当前位置:首页 » 编程语言 » csvphp

csvphp

发布时间: 2022-04-11 04:45:21

php输出csv后 如何将数据输出到网页的问题

function export_csv($filename, $data) {
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=" . $filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header('Pragma:public');
echo $data;
header('content-Type:text/html');
echo "成功!";
}

❷ 如何使用PHP导出csv和excel文件

(一)phpexcel文件导出:
步骤1,引入文件require APPPATH.'/libraries/PHPExcel.PHP';
步骤2, 实例化PHPEXCEL对象 $objPHPExcel=new PHPExcel();
步骤3, 设置表头 $column = array('A','B','C'); $line = array('词语','频次','词性');
//填充表头信息
for($i = 0;$i < count($tableheader_all);$i++) {
$objPHPExcel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");
//上一行中"$letter[$i]1"表示第“1”行第“$i”列
}
步骤4, 填充数据
for ($i = 2;$i <= count($data) + 1;$i++) {//因为内容是从第二行开始的,所以i=2表示从第二行开始填充数据
$j = 0;
foreach ($tmp as $key=>$val ){
$objPHPExcel->getActiveSheet()->setCellValue("$letter[$j]$i",$data[$i-2][$val]); //数据是从第一条开始但是i的初值是2所以想从第一条开始应该是$data[$i-2]开始
$j++;
}
}
步骤5,写进excel中并输出
$write = new PHPExcel_Writer_Excel5($objPHPExcel);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename="数据导出_词云图.xls"');
header("Content-Transfer-Encoding:binary");
$write->save('php://output');

(一)CSV文件导出:
csv文件导出最令人头疼的问题就是编码问题,现在分享一下我的经验
首先看服务器是linux的还是windows的 如果是windows的服务器那么编码问题只能借助于mb_convert_encoding()或者是iconv两个函数相互转换中文编码
如果服务器是linux的 那么很简单 utf-8: setlocale(LC_ALL, ‘en_US.UTF-8′); 简体中文:setlocale(LC_ALL, ‘zh_CN');
下面来说csv导出步骤:

$result = mysql_query("select * from student order by id asc");
$str = "姓名,性别,年龄\n";
$str = iconv('utf-8','gb2312',$str);
while($row=mysql_fetch_array($result)){
$name = iconv('utf-8','gb2312',$row['name']); //中文转码
$sex = iconv('utf-8','gb2312',$row['sex']);
$str .= $name.",".$sex.",".$row['age']."\n"; //用引文逗号分开
}
$filename = date('Ymd').'.csv'; //设置文件名
export_csv($filename,$str); //导出
要将数据导出到本地即下载,需要修改header信息,代码如下:
function export_csv($filename,$data) {
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=".$filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header('Pragma:public');
echo $data;
}

❸ php如何读取CSV大文件并且将其导入数据库示例

思路:

读取csv文件,每读取一行数据,就插入数据库

示例

文件夹结构

/
file.csv//csv大文件,这里只模拟三行数据,不考虑运行效率(PS:csv文件格式很简单,文件一般较小,解析很快,运行效率的瓶颈主要在写入数据库操作)
index.php//php文件

file.csv

singi,20
lily,19
daming,23

index.php

/**
*读取csv文件,每读取一行数据,就插入数据库
*/

//获取数据库实例
$dsn='mysql:dbname=test;host=127.0.0.1';
$user='root';
$password='';
try{
$db=newPDO($dsn,$user,$password);
}catch(PDOException$e){
echo'Connectionfailed:'.$e->getMessage();
}

//读取file.csv文件
if(($handle=fopen("file.csv","r"))!==FALSE){
while(($row=fgetcsv($handle,1000,","))!==FALSE){
//写入数据库
$sth=$db->prepare('insertintotestsetname=:name,age=:age');
$sth->bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth->bindParam(':age',$row[1],PDO::PARAM_INT);
$sth->execute();
}
fclose($handle);
}

数据表

CREATETABLE`test`(
`id`INT(10)UNSIGNEDNOTNULLAUTO_INCREMENT,
`name`VARCHAR(255)NULLDEFAULT''COLLATE'utf8mb4_bin',
`age`INT(10)NULLDEFAULT'0',
PRIMARYKEY(`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;

运行结束后,数据库中会插入csv中的三行数据

❹ php 生成csv文件并提示保存

<?php
//文件名
$filename="test.csv";

//数据(具体的根据需要做处理,如果是从数据库查询,原理与此类似,只需设置好写入格式和数据即可。
$data="测试csv";

//设置header
header("Content-type:text/csv");
header("Content-Disposition:attachment;filename=".$filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');header('Pragma:public');
echo$data;
?>

❺ csv文件用PHP要怎么读取

读取csv文件制定行数(行区间)

<?php

function get_file_line( $file_name, $line_star, $line_end){
$n = 0;
$handle = fopen($file_name,"r");
if ($handle) {
while (!feof($handle)) {
++$n;
$out = fgets($handle, 4096);
if($line_star <= $n){
$ling[] = $out;

❻ php读取csv文件时 用phpexcel很慢 用fgetcsv()函数中文乱码 请问还有什么excel库或函数方法来读csv文件吗

php从csv文件读取数据并输出到网页的方法

<?php
$fp=fopen('sample.csv','r')ordie("can'topenfile");
print"<table> ";
while($csv_line=fgetcsv($fp)){
print'<tr>';
for($i=0,$j=count($csv_line);$i<$j;$i++){
print'<td>'.htmlentities($csv_line[$i]).'</td>';
}
print"</tr> ";
}
print'</table> ';
fclose($fp)ordie("can'tclosefile");
?>

你可以这样试一试的啊

❼ php 生成 csv文件

<?php
/**
*CreatedbyPhpStorm.
*User:[email protected]
*Date:2016/12/210021
*Time:下午12:08
*/
//头部标题
$csv_header=['名称','性别','年龄'];
//内容
$csv_body=[
['张三','男','13'],
['李四','女','13'],
['王五','男','13'],
['赵六','未知','13']
];

/**
*开始生成
*1.首先将数组拆分成以逗号(注意需要英文)分割的字符串
*2.然后加上每行的换行符号,这里建议直接使用PHP的预定义
*常量PHP_EOL
*3.最后写入文件
*/
//打开文件资源,不存在则创建
$fp=fopen('test.csv','a');
//处理头部标题
$header=implode(',',$csv_header).PHP_EOL;
//处理内容
$content='';
foreach($csv_bodyas$k=>$v){
$content.=implode(',',$v).PHP_EOL;
}
//拼接
$csv=$header.$content;
//写入并关闭资源
fwrite($fp,$csv);
fclose($fp);

❽ php csv文件和excel文件的区别

其实最大的一个区别,PHP中有自带的csv函数,可以直接拿来使用,而Excel文件需要重新写入。你这个问题我之前测试过一个大数据,股票数据文件,股票数据文件用csv来保存的,将csv文件的数据直接保存在数据库里很便捷。而excel文件保存的时候,会出现乱码的问题,总之,文本文件和二进制文件保存方式是有区别的。建议在项目用csv文件格式进行导入导出数据。

❾ php中如何导入导出CSV格式的文件

  1. php导入CSV文件:
    $line_number = 0;
    $handle = fopen("1.xls","r");
    while ($data = fgetcsv ($handle, 100000, ",")) {
    if($line_number == 0){
    $line_number++;
    continue;
    }
    //z这样就可以去掉表头的那一行
    for ($i = 0; $i < count($data); $i++) {
    $zian = $data[$i];
    }
    }



2.php导出CSV文件



header( "Cache-Control: public" );
header( "Pragma: public" );
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=txxx.csv");
header('Content-Type:APPLICATION/OCTET-STREAM');
ob_start();
$header_str = iconv("utf-8",'gbk',"信息id,标题,名称,电话,QQ,Email,内容,时间 ");
$file_str="";
$mysqli= new mysqli('localhost','root','','test');
if (mysqli_connect_errno()) {
printf("Connect failed: %s ", mysqli_connect_error());
exit();
}
$sql='select * from messages';
$mysqli->query("set names utf8 ;");
$result=$mysqli->query($sql);
if($result){
while ($row = mysqli_fetch_assoc($result)){
$file_str.= $row['id'].','.$row['title'].','.$row['name'].','."'{$row['telephone']}'".','.$row['qq'].','.$row['email'].','.str_ireplace(',',',',$row['content']).','.$row['retime']." ";
}
}else{
echo "nonono!!!";
}
$file_str= iconv("utf-8",'gbk',$file_str);
ob_end_clean();
echo $header_str;
echo $file_str;
?>

❿ php导入csv文件输出是乱码,怎么解决

//这是我前几天回答过的一个问题下面以读取淘宝csv文件为例
if($result){//如果上传成功了,这是文件路径
if(!($handle=fopen_utf8($result,"r"))===FALSE){//调取下边函数fopen_utf8;
$errorArr=array();
$i=0;
while(($cols=fgetcsv($handle,1000," "))!==FALSE){
++$i;
if($i<4)continue;
$taobaolmsx=$cols[21];//宝贝属性;
$taobaoxxsx=$cols[30];//销售属性;
$goodsBn=$cols[33];//商家编码;

}
fclose($handle);
}

unlink($result);
}else{
echo'fileuploaderror';exit;
}

/*读取csv文件用*/
functionfopen_utf8($filename){
$encoding='';
$handle=fopen($filename,'r');
$bom=fread($handle,2);
rewind($handle);

if($bom===chr(0xff).chr(0xfe)||$bom===chr(0xfe).chr(0xff)){
//UTF16ByteOrderMarkpresent
$encoding='UTF-16';
}else{
$file_sample=fread($handle,1000)+'e';//readfirst1000bytes
//+eisaworkaroundformb_stringbug
rewind($handle);

$encoding=mb_detect_encoding($file_sample,'UTF-8,UTF-7,ASCII,EUC-JP,SJIS,eucJP-win,SJIS-win,JIS,ISO-2022-JP');
}
if($encoding){
stream_filter_append($handle,'convert.iconv.'.$encoding.'/UTF-8');
}
return($handle);
}

热点内容
ssid哪里输入密码 发布:2025-01-19 16:21:53 浏览:362
云服务器网速慢 发布:2025-01-19 16:20:17 浏览:404
电脑上传监控 发布:2025-01-19 16:13:16 浏览:307
书旗小说怎样离线缓存 发布:2025-01-19 16:12:30 浏览:284
如何给盘符设置密码 发布:2025-01-19 16:11:47 浏览:345
delphi字符加密解密 发布:2025-01-19 16:00:55 浏览:209
为什么安卓不发烫 发布:2025-01-19 15:57:57 浏览:581
oracle存储过程参数游标 发布:2025-01-19 15:57:53 浏览:522
光遇安卓哪个渠道好 发布:2025-01-19 15:41:17 浏览:744
波段的算法 发布:2025-01-19 15:37:00 浏览:424