Ik gebruik deze bibliotheek om arrays naar een ander gegevensformaat te converteren of omgekeerd.
Daar kun je bibliotheek/klasse-indeling (Format.php) vinden die je kunt gebruiken om CSV naar array te converteren en vervolgens op te slaan in je database. Deze klasse ondersteunt ook andere indelingen:
- xml – bijna elke programmeertaal kan XML lezen
- json – handig voor JavaScript en steeds meer PHP-apps.
- csv – openen met spreadsheetprogramma's
- html – een eenvoudige HTML-tabel
- php – Vertegenwoordiging van PHP-code die kan worden eval()'ed
- serialiseren – Geserialiseerde gegevens die in PHP kunnen worden gedeserialiseerd
BEWERKEN:
Deze bibliotheek werkt op CSV met scheidingsteken "\n" op elke rij en "," op elke kolom, u kunt het als volgt gebruiken:
$this->load->library('format');
$string_csv = "YOUR CSV";
$result = $this->format->factory($string_csv, 'csv')->to_array();
var_dump($result);
Zo simpel. Maar zoals ik hierboven al zei, als je een ander scheidingsteken hebt, moet je de bibliotheek naar behoefte aanpassen. Hier de belangrijkste functie om CSV naar array te converteren:
function _from_csv($string)
{
$data = array();
// Splits
$rows = explode("\n", trim($string));
$headings = explode(',', array_shift($rows));
foreach ($rows as $row)
{
// The substr removes " from start and end
$data_fields = explode('","', trim(substr($row, 1, -1)));
if (count($data_fields) == count($headings))
{
$data[] = array_combine($headings, $data_fields);
}
}
return $data;
}
BEWERK 2:
Mijn voorbeeld werkt op dit standaard CSV-formaat:
Heading1, Heading2, Heading3
"1","John","London"
"2","Brian","Texas"