Home >Backend Development >PHP Tutorial >php 导出数据,格式为csv

php 导出数据,格式为csv

WBOY
WBOYOriginal
2016-06-23 14:00:58935browse

php 导出数据,格式为csv 不用phpexcel类,请问还有别的方法吗?自己写个类应该怎样写?多谢!


回复讨论(解决方案)

$fp = fopen('csv文件名', 'w');$rs = mysql_query('select * from tbl_name');while($row = mysql_fetch_assoc($rs) {  fputcsv($fp, $row);}fclose($fp);

版主正解 +1

数据很大的话,这样写会很慢啊

你用 php 代码写,慢是正常的
如果你有权限访问数据库目录,也可以建一个 ENGINE=CSV 的表,复制数据进去

先说一下从哪里导出数据。

将数据库中查询的数据导出!

<form enctype="multipart/form-data" action="import.php" method="POST">    导入模板      <label for="文件选择">文件选择:</label><input name="csv_goods" type="file" />    <input type="submit" value="导入" name="import" /></form><?phpif (isset($_POST['import'])){        $file = $_FILES['csv_goods'];        $file_type = substr(strstr($file['name'],'.'),1);        // 检查文件格式    if ($file_type != 'csv'){        echo '文件格式不对,请重新上传!';        exit;    }    $handle = fopen($file['tmp_name'],"r");    $file_encoding = mb_detect_encoding($handle);        // 检查文件编码    if ($file_encoding != 'ASCII'){        echo '文件编码错误,请重新上传!';        exit;    }        $row = 0;    while ($data = fgetcsv($handle,1000,',')){        //echo "<font color=red>$row</font>";  //可以知道总共有多少行        $row++;        if ($row == 1)        continue;        $num = count($data);        // 这里会依次输出每行当中每个单元格的数据        for ($i=0; $i<$num; $i++){            echo $data[$i]."<br>";            // 在这里对数据进行处理        }    }        fclose($handle);}?> 

后台的话慢点没关系
给用户用的话就得考虑限制用户使用频率
或者用其他方法提速了 比如扩展什么的

速度慢 和这个代码好像没关系把  不是查询数据库

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn