当前位置:首页 » 编程语言 » php获取csv

php获取csv

发布时间: 2022-08-09 12:49:59

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中的三行数据

② 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文件(一个或多个)

如果你的代码是可以正常运行的,用glob函数可以读取相对应的文件

<?php
$path = 'warehouse_data/DFRC/'
foreach (glob($path."*.csv") as $filename) {
$handle = fopen($filename,"r");
setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.GBK GBK ','zh_CN.gb2312','zh_CN.gb18030','en_US.UTF-8','zh_CN'));
while ($data = fgetcsv($handle, 2000, ",")) {
$sql = "insert into `".$t."`(`pu_no`,`cust_no`,`custname`,`requ`,`supply`,`supply_no`,`ck_adr`,`arr_time`,`arr_adr`,`unload_point`,`indent_mount`,
`snp`,`case_mount`,`dgs`,`gj_dd`,`sd`,`pack_no`,`auto_style`) values ('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."','".$data[4]."',
'".$data[5]."','".$data[6]."','".$data[7]."','".$data[8]."','".$data[9]."','".$data[10]."','".$data[11]."','".$data[12]."','".$data[14]."','".$data[15]."',
'".$data[16]."','".$data[17]."','".$data[29]."')" ;
echo $sql.'<br />'
mysql_query($sql);
//print_r($data);
}
unset($handle);
unlink($filename);
}
?>

④ 为什么php读取csv文件读到首个字符是中文

$handle=fopen('link.csv','r');
while($data=fgetcsv($handle,10000,","))
{
//输出你想要的$data数据
echo $data["0"];

}

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

其实你可以用
phpmyadmin
实现导入导出,不过导入的时候字段要和数据表的字段一一对应,参考资料里面的直接用PHP读取excel的,可能也会对你有帮助!

⑥ php怎么读取csv文件并插入数据库

使用 phpmyadmin 中的导入功能,选择csv格式

⑦ 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);

⑧ HTML表单提交的csv格式表格php怎么读取内容

亲,你好,很高兴为你解答
首先你使用form表单进行文件上传操作,需要先把文件上传到服务器保存到指定的服务器目录。
然后你再使用PHP程序来打开已经上传到服务器上面的csv文件即可。
希望可以帮到你~~~

热点内容
怎样建立算法 发布:2025-01-21 12:12:14 浏览:838
凸包的graham算法 发布:2025-01-21 12:00:00 浏览:146
jsonobject转java对象 发布:2025-01-21 12:00:00 浏览:306
macpython3默认 发布:2025-01-21 11:58:26 浏览:261
芒果服务器是什么意思 发布:2025-01-21 11:57:54 浏览:40
微信聊天服务器错误什么意思 发布:2025-01-21 11:56:13 浏览:460
linuxtomcat不能访问 发布:2025-01-21 11:47:11 浏览:394
刷新器需要什么配置 发布:2025-01-21 11:09:28 浏览:972
jedis源码 发布:2025-01-21 11:08:24 浏览:890
edm数据库 发布:2025-01-21 11:05:54 浏览:371