很多站长朋友们都不太清楚phpcsv文件读取,今天小编就来给大家整理phpcsv文件读取,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 读取同一目录下的csv文件(一个或多个) 2、 php读取csv问题 3、 PHP如何对CSV大文件进行读取并导入数据库 4、 php如何读取CSV大文件并且将其导入数据库示例 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问题应该是不会的,你能贴点代码出来不,这样比较模糊,
<?php
$file = fopen('windows_2011_s.csv','r');
while ($data = fgetcsv($file)) {
$goods_list[] = $data;
}
foreach ($goods_list as $arr){
if ($arr[0]!=""){
echo $arr[0]."<br>";
}
}
echo $goods_list[2][0];
fclose($file);
?>
还有个问题就是带双引号如果你在往数据库里插入数据的时候可能会导致语法错误而不能插入
PHP如何对CSV大文件进行读取并导入数据库fgetcsv 可以读取fopen打开的文件,并读取一行,
这样可以防止文件太大而内存溢出
然后每读取一定行数,入库一次,
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 = 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(':name',$row[0],PDO::PARAM_STR,255);
$sth->bindParam(':age',$row[1],PDO::PARAM_INT);
$sth->execute();
}
fclose($handle);
}
数据表
CREATE TABLE `test` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NULL DEFAULT '' COLLATE 'utf8mb4_bin',
`age` INT(10) NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
运行结束后,数据库中会插入csv中的三行数据
关于phpcsv文件读取的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于phpcsv文件读取 php 读取文件的详细内容...