重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

php如何读取csv数据 php生成csv文件

PHP操作CSV文件的问题,请教大家!

csv是以逗号和回车分隔开的 ..

目前成都创新互联公司已为近千家的企业提供了网站建设、域名、网络空间、绵阳服务器托管、企业网站设计、上杭网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

你首先读取文件..

然后用explode分隔回车,

得到一个数组,再对数组内的数据遍历用逗号分隔.会得到具体的数据..

思路就这样....自己多加尝试..理解就可以..

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怎样读取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 应该是坏了。

phpexcel 读取csv大文件只读取显示A列

虽然有Excel操作类,不建议使用。php操作excel本来就很不地道,表格复杂点就出错,特别是在linux系统上就更麻烦了。

CSV是通用格式,你可以用excel另存为csv格式,再交给php处理。php有专门的fgetcsv()来读取csv中的数据。

PHP如何对CSV大文件进行读取并导入数据库

fgetcsv 可以读取fopen打开的文件,并读取一行,

这样可以防止文件太大而内存溢出

然后每读取一定行数,入库一次,

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

php导入CSV文件:

$line_number = 0;

$handle = fopen("1.xls","r");

while ($data = fgetcsv ($handle, 100000, ",")) {

if($line_number == 0){

$line_number++;

continue;

}

//z这样就可以去掉表头的那一行

for ($i = 0; $i count($data); $i++) {

$ziduan = $data[$i];

}

}

2.php导出CSV文件

header( "Cache-Control: public" );

header( "Pragma: public" );

header("Content-type:application/vnd.ms-excel");

header("Content-Disposition:attachment;filename=txxx.csv");

header('Content-Type:APPLICATION/OCTET-STREAM');

ob_start();

$header_str =  iconv("utf-8",'gbk',"信息id,标题,名称,电话,QQ,Email,内容,时间\n");

$file_str="";

$mysqli= new mysqli('localhost','root','','test');

if (mysqli_connect_errno()) {

printf("Connect failed: %s\n", mysqli_connect_error());

exit();

}

$sql='select *  from messages';

$mysqli-query("set names utf8 ;");

$result=$mysqli-query($sql);

if($result){

while ($row = mysqli_fetch_assoc($result)){

$file_str.= $row['id'].','.$row['title'].','.$row['name'].','."'{$row['telephone']}'".','.$row['qq'].','.$row['email'].','.str_ireplace(',',',',$row['content']).','.$row['retime']."\n";

}

}else{

echo "nonono!!!";

}

$file_str=  iconv("utf-8",'gbk',$file_str);

ob_end_clean();

echo $header_str;

echo $file_str;

?


本文标题:php如何读取csv数据 php生成csv文件
分享网址:http://cqcxhl.com/article/hiisdj.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP