Bu biraz uzun, bu yüzden önceden özür dilerim.Her satırın birden çok sütunun bulunduğu bir csv dosyası nasıl ayrıştırılır?
Bir csv dosyasını a; sınırlayıcı ve herhangi bir nedenle sadece ilk dizeyi ayrıştırır ve sonra dosyadaki sonraki satıra geçilir. Ben veri aktarma işlemini test etmek için en sonunda Csvimport sınıfta bir print_r($content); break;
yaptı ve bu bana veren şeydir: Bir problem
Array ([1] => Array ([Key1] => Key1) [2] => Array ([Key2] => Key2)) 1
. İkincisi, görüntüye gitmesine izin verdiğimde, $field['key']
, $field['address']
, $field['lotno']
, vb. Her satır için hataları atar, anahtar, adres, lotno undefined.
Bu benim csv dosyasıdır:
Key1;Address1;LotNo1;Acres1;YrBuilt1;
Key2;Address2;LotNo2;Acres2;YrBuilt2;
Bu benim csv alma kitaplığı dosyasıdır: Bu benim denetleyicisi olan
class Csvimport {
var $fields;/** columns names retrieved after parsing */
var $separator = ';';/** separator used to explode each line */
var $enclosure = '"';/** enclosure used to decorate each field */
var $max_row_size = 4096;/** maximum row size to be used for decoding */
function parse_file($p_Filepath) {
$file = fopen($p_Filepath, 'r');
$this->fields = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure);
$keys = str_getcsv($this->fields[0]);
$i = 1;
while (($row = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure)) != false) {
if ($row != null) { // skip empty lines
$values = str_getcsv($row[0]);
if (count($keys) == count($values)) {
$arr = array();
for ($j = 0; $j < count($keys); $j++) {
if ($keys[$j] != "") {
$arr[$keys[$j]] = $values[$j];
}
}
$content[$i] = $arr;
$i++;
}
}
}
fclose($file);
// echo print_r($content); break;
return $content;
}
}
:
$import = './application/imports/unitimport.csv';
$this->load->library('csvimport');
$data['importdata'] = $this->csvimport->parse_file($import);
Ve bu benim görünümüdür:
<?php foreach($importdata as $field): ?>
<tr>
<td><p><?php echo $field['key'] ?><p></td>
<td><p><?php echo $field['address'] ?><p></td>
<td><p><?php echo $field['lotno'] ?><p></td>
<td><p><?php echo $field['acres'] ?><p></td>
<td><p><?php echo $field['yrbuilt'] ?><p></td>
</tr>
<?php endforeach ?>
Neyi eksik?