我是PHP的新手。所以我在互联网上找到这个代码并将其修改为我需要的东西,但似乎它在数组中给了我一个更多的值,有时候。
当csv看起来像这样
答:1个
B:2-
C:3
d:4
没关系,但是当我得到了
答:1,2,3,4
B:1,2,3,4
C:1,2,3,4
d:1,2,3,4
它又增加了一条空行。 为什么会这样,我可以阻止它吗?
<?php
$csv_mimetypes = array(
'text/csv',
'text/plain',
'application/csv',
'text/comma-separated-values',
'application/excel',
'application/vnd.ms-excel',
'application/vnd.msexcel',
'text/anytext',
'application/octet-stream',
'application/txt',);
if ($_FILES["csv"]["error"] > 0)
{
echo "<script type='text/javascript'>alert('no file');</script>";
}
elseif(in_array ($_FILES["csv"]["type"] ,$csv_mimetypes))
{
//get the csv file
$file = $_FILES['csv']['tmp_name'];
$csv= file_get_contents($file);
$array = explode("\r\n", $csv);
for($i=0;$i<count($array);$i++){
$array[$i] = explode(';', $array[$i]);
}
echo "<script type='text/javascript'>alert('OK!');</script>";
}
else
{
echo "File must be a .csv";
}
?>
<script type="text/javascript" src="Bar.js"></script>
<script type="text/javascript">
var myJsarray = <?= json_encode($array); ?> ;
答案 0 :(得分:1)
将file_get_content
替换为file
,以阅读each line into an array。
// $array = file($file, FILE_IGNORE_NEW_LINES);
$array = array("id;podaci1;podaci2", "grad1;25;21", "grad2;23;28", "grad3;45;32");
array_walk($array, function (& $line) {
$line = explode(';', $line);
});
$json = json_encode($array);
print_r($json);
[["id","podaci1","podaci2"],["grad1","25","21"],["grad2","23","28"],["grad3","45","32"]]
答案 1 :(得分:0)
你确定你的csv文件都以同样的方式终止吗?
我的意思是:我想当你在数组底部得到一个额外的空行时,相应的csv文件会终止一个额外的字段分隔符(;
)或行分隔符(\r\n
)...