PHP读取csv文件的内容的方法。
一次性读取csv文件内所有行的数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
$file
=
fopen
(
'windows_2011_s.csv'
,
'r'
);
while
(
$data
=
fgetcsv
(
$file
)) {
//每次读取CSV里面的一行内容
//print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可
$goods_list
[] =
$data
;
}
//print_r($goods_list);
/* foreach ($goods_list as $arr){
if ($arr[0]!=""){
echo $arr[0]."<br>";
}
} */
echo
$goods_list
[2][0];
fclose(
$file
);
?>
|
读取csv文件的某一行数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?php
function
get_file_line(
$file_name
,
$line
){
$n
= 0;
$handle
=
fopen
(
$file_name
,
'r'
);
if
(
$handle
) {
while
(!
feof
(
$handle
)) {
++
$n
;
$out
=
fgets
(
$handle
, 4096);
if
(
$line
==
$n
)
break
;
}
fclose(
$handle
);
}
if
(
$line
==
$n
)
return
$out
;
return
false;
}
echo
get_file_line(
"windows_2011_s.csv"
, 10);
?>
|
读取csv文件制定行数(行区间)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
//读取csv文件制定行数
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
;
}
if
(
$line_end
==
$n
)
break
;
}
fclose(
$handle
);
}
if
(
$line_end
==
$n
)
return
$ling
;
return
false;
}
$aa
= get_file_line(
"windows_2011_s.csv"
, 11, 20);
//从第11行到第20行
foreach
(
$aa
as
$bb
){
//www.jbxue.com
echo
$bb
.
"<br>"
;
}
?>
|
另外从网上找的两种方法(没测试,不知道好不好使)
1
2
3
4
5
6
7
8
9
10
11
|
<?
$handle
=
fopen
(
"1.csv"
,
"r"
);
while
(!
feof
(
$handle
)){
$buffer
=
fgetss
(
$handle
,2048);
$data
=
explode
(
","
,
$buffer
);
$num
=
count
(
$data
);
for
(
$i
=0;
$i
<
$num
;
$i
++){
print_r(
$data
);
}
}
?>
|
复制代码 代码如下:
1
2
3
4
5
6
7
8
9
10
11
|
<?
$handle
=
fopen
(
"1.csv"
,
"r"
);
$row
=1;
while
(
$data
=
fgetcsv
(
$handle
,1000,
","
)){
$num
=
count
(
$data
);
for
(
$i
=0;
$i
<
$num
;
$i
++){
echo
$data
[
$i
];
}
$row
++;
}
?>
|