其实最大的一个区别,PHP中有自带的csv函数,可以直接拿来使用,而Excel文件需要重新写入.你这个问题我之前测试过一个大数据,股票数据文件,股票数据文件用csv来保存的,将csv文件的数据直接保存在数据库里很便捷.而excel文件保存的时候,会出现乱码的问题,都说到这里了大家应该明白,文本文件和二进制文件保存方式是有区别的.建议在项目用csv文件格式进行导入导出数据.
虽然有Excel操作类,不建议使用.php操作excel本来就很不地道,表格复杂点就出错,特别是在linux系统上就更麻烦了.
CSV是通用格式,你可以用excel另存为csv格式,再交给php处理.php有专门的fgetcsv()来读取csv中的数据.
php导出csv文件大小无法去除限制,但是可以通过以下方法达到目的,用到的工具:notepad++,步骤如下:
找到php.ini配置文件,需要修改以下三处参数:
思路:
读取csv文件,每读取一行数据,就插入数据库
示例
文件夹结构
/
file.csv?//csv大文件,这里只模拟三行数据,不考虑运行效率(PS:csv文件格式很简单,文件一般较小,解析很快,运行效率的瓶颈主要在写入数据库操作)
index.php?//php文件
file.csv
index.php
/**
*?读取csv文件,每读取一行数据,就插入数据库
*/
//获取数据库实例
$user?=?'root';
$password?=?'';
try?{
$db?=?new?PDO($dsn,?$user,?$password);
}?catch?(PDOException?$e)?{
echo?'Connection?failed:?'?.?$e-getMessage();
}
//读取file.csv文件
if?(($handle?=?fopen("file.csv",?"r"))?!==?FALSE)?{
while?(($row?=?fgetcsv($handle,?1000,?","))?!==?FALSE)?{
//写入数据库
$sth?=?$db-prepare('insert?into?test?set?name=:name,age=:age');
$sth-bindParam(':age',$row[1],PDO::PARAM_INT);
$sth-execute();
fclose($handle);
数据表
CREATE?TABLE?+test+?(
+id+?INT(10)?UNSIGNED?NOT?NULL?AUTO_INCREMENT,
+age+?INT(10)?NULL?DEFAULT?'0',
PRIMARY?KEY?(+id+)
)
ENGINE=InnoDB;
运行结束后,数据库中会插入csv中的三行数据
以上就是土嘎嘎小编为大家整理的phpcsv大数据相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!