J'utilise cette bibliothèque pour convertir un tableau en un autre format de données ou vice versa.
Vous y trouverez la bibliothèque/classe Format (Format.php) que vous pouvez utiliser pour convertir CSV en tableau, puis enregistrez-le dans votre base de données. Cette classe prend également en charge d'autres formats :
- xml :presque tous les langages de programmation peuvent lire XML
- json :utile pour les applications JavaScript et de plus en plus PHP.
- csv – ouvert avec des tableurs
- html – un simple tableau HTML
- php - Représentation du code PHP qui peut être eval()'ed
- sérialiser – Données sérialisées pouvant être désérialisées en PHP
MODIF :
Cette bibliothèque fonctionne sur CSV avec le délimiteur "\n" sur chaque ligne et "," sur chaque colonne, vous pouvez l'utiliser comme ceci :
$this->load->library('format');
$string_csv = "YOUR CSV";
$result = $this->format->factory($string_csv, 'csv')->to_array();
var_dump($result);
C'est aussi simple que ça. Cependant, comme je l'ai dit ci-dessus, si vous avez un autre délimiteur, vous devez ajuster la bibliothèque selon vos besoins. Voici la fonction principale pour convertir CSV en tableau :
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;
}
MODIFICATION 2 :
Mon exemple fonctionnera sur ce format CSV standard :
Heading1, Heading2, Heading3
"1","John","London"
"2","Brian","Texas"