Използвам тази библиотека, за да преобразувам масив в някакъв друг формат на данни или обратното.
Там можете да намерите формат на библиотека/клас (Format.php), който можете да използвате, за да конвертирате CSV в масив, след което да го запишете във вашата база данни. Този клас поддържа и друг формат:
- xml – почти всеки език за програмиране може да чете XML
- json – полезен за JavaScript и все повече PHP приложения.
- csv – отваря се с програми за електронни таблици
- html – проста HTML таблица
- php – Представяне на PHP код, който може да бъде eval()’ed
- сериализиране – Сериализирани данни, които могат да бъдат десериализирани в PHP
РЕДАКТИРАНЕ:
Тази библиотека работи на CSV с разделител „\n“ на всеки ред и „,“ на всяка колона, можете да я използвате по следния начин:
$this->load->library('format');
$string_csv = "YOUR CSV";
$result = $this->format->factory($string_csv, 'csv')->to_array();
var_dump($result);
Толкова просто. Въпреки това, както казах по-горе, ако имате друг разделител, тогава трябва да коригирате библиотеката според вашите нужди. Ето основната функция за конвертиране на CSV в масив:
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;
}
РЕДАКТИРАНЕ 2:
Моят пример ще работи в този стандартен CSV формат:
Heading1, Heading2, Heading3
"1","John","London"
"2","Brian","Texas"