![](/img/trans.png)
[英]How to read a range of rows from CSV file to JSON array using PHP to handle large CSV file?
[英]How to read single column multiple rows csv file as an array using php
我有我的csv文件具有url的要求,我需要将其读取为数组.csv文件具有单列且具有无标题的多行。我正在使用以下代码阅读。但是它没有返回我需要的输出。
$handle = fopen($this->local_temp_folder.$file, 'r');
if(!$handle)
{
Model_Log::error('Cannot open uploaded file.');
die('Cannot open uploaded file.');
}
while (($data = fgetcsv($handle)) !== FALSE)
{
$num = count($data);
for ($c=0; $c < $num; $c++) {
$url_array[$c] = $data[$c];
}
}
print_r($url_array);exit;
Array
(
[0] => http://www.test.com/Fo/Finder/Digital_C/
http://www.test.com/Fo/Finder/orders/HighD/R56/
)
But i want it like the array as follows
Array
(
[0] => http://www.test.com/Fo/Finder/Digital_C/
[1] => http://www.test.com/Fo/Finder/orders/HighD/R56/
)
我已经用记事本检查了csv文件。在记事本中,它看起来像是http://www.test.com/Fo/Finder/Digital_C/http://www.test.com/Fo/Finder/orders/HighD / R56 /但是当我用excel打开时,它显示为两行。
$handle = fopen($this->local_temp_folder.$file, 'r');
if(!$handle)
{
Model_Log::error('Cannot open uploaded file.');
die('Cannot open uploaded file.');
}
while (($data = fgetcsv($handle)) !== FALSE)
{
$url_array[] = $data[0];
}
尝试一下,但是如果您共享csv文件,则最好为您提供帮助。
function read($file){
$data = array();
$csv_file = $file['folder'] . $file['name'];
$csvfile = fopen($csv_file, 'r');
if(!feof($csvfile)){
$i = 0;
while (!feof($csvfile)) {
$csv_data[] = fgetcsv($csvfile, 1000, ",");
$data[] = array(
'column1' => !empty($csv_data[$i][0])?$csv_data[$i][0]:'empty',
'column2' => !empty($csv_data[$i][1])?$csv_data[$i][1]:'empty',
'column3' => !empty($csv_data[$i][2])?$csv_data[$i][2]:'empty',
'column4' => !empty($csv_data[$i][3])?$csv_data[$i][3]:'empty',
'column5' => !empty($csv_data[$i][4])?$csv_data[$i][4]:'empty'
);
$i++;
}
}
return $data;
}
$data = read(array('folder'=>'','name'=>'file.csv'));//same folder
var_dump($data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.