很多站长朋友们都不太清楚php读取csv表格,今天小编就来给大家整理php读取csv表格,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php如何读取CSV大文件并且将其导入数据库示例 2、 HTML表单提交的csv格式表格php怎么读取内容 3、 phpexcel 读取csv大文件只读取显示A列 4、 php怎样读取excel表格内容? 5、 php读取csv问题 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中的三行数据
HTML表单提交的csv格式表格php怎么读取内容亲,你好,很高兴为你解答
首先你使用form表单进行文件上传操作,需要先把文件上传到服务器保存到指定的服务器目录。
然后你再使用PHP程序来打开已经上传到服务器上面的csv文件即可。
希望可以帮到你~~~
phpexcel 读取csv大文件只读取显示A列虽然有Excel操作类,不建议使用。php操作excel本来就很不地道,表格复杂点就出错,特别是在linux系统上就更麻烦了。
CSV是通用格式,你可以用excel另存为csv格式,再交给php处理。php有专门的fgetcsv()来读取csv中的数据。
php怎样读取excel表格内容?常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。\x0d\x0a\x0d\x0a1. 以.csv格式读取\x0d\x0a\x0d\x0a将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。\x0d\x0a\x0d\x0a优点:跨平台,效率比较高、可以读写。\x0d\x0a\x0d\x0a缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。\x0d\x0a\x0d\x0aPHP有自带的分析.csv函数:fgetcsv\x0d\x0a\x0d\x0aarray fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )\x0d\x0a\x0d\x0ahandle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。\x0d\x0a\x0d\x0alength (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。\x0d\x0a\x0d\x0adelimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。\x0d\x0a\x0d\x0aenclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。\x0d\x0a\x0d\x0afgetcsv() 出错时返回 FALSE,包括碰到文件结束时。\x0d\x0a\x0d\x0a注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。\x0d\x0a\x0d\x0a当然也可以自己手动分析字符串。\x0d\x0a\x0d\x0a还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。\x0d\x0a\x0d\x0a2. ODBC链接数据源\x0d\x0a\x0d\x0a优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。\x0d\x0a\x0d\x0a缺点:值支持windows服务器\x0d\x0a\x0d\x0a3. PHP自定义类\x0d\x0a\x0d\x0a优点:跨平台。某些类支持写操作。支持.xls二进制文件\x0d\x0a\x0d\x0a常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。\x0d\x0a\x0d\x0aphpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。\x0d\x0a\x0d\x0a该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。\x0d\x0a\x0d\x0a不过我下载回来的 (版本 2009-03-30),有两点要注意:\x0d\x0a\x0d\x0areader.php 中的下面这行要修改\x0d\x0a\x0d\x0a将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;\x0d\x0a\x0d\x0a改为 require_once ‘oleread.inc’;\x0d\x0a\x0d\x0aexample.php 中\x0d\x0a\x0d\x0a修改 $data->setOutputEncoding(’CP1251′);\x0d\x0a\x0d\x0a为 $data->setOutputEncoding(’CP936′);\x0d\x0a\x0d\x0aexample2.php 中\x0d\x0a\x0d\x0a修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));\x0d\x0a\x0d\x0a为 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));\x0d\x0a\x0d\x0a不然中文会有问题。\x0d\x0a\x0d\x0a繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。\x0d\x0a\x0d\x0a修改 $data->read(’jxlrwtest.xls’) 为自己的 excel 文件名,zip 档中附的 jxlrwtest.xls 应该是坏了。
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表格的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php读取csv表格 php读取数据表内容的详细内容...