Ładowanie plików CSV do tablicy w PHP
Prosta funkcja, która ładuje zawartość pliku CSV do tablicy. Wiersze są pobierane instrukcją file
, a następnie rozbijane za pomocą funkcji explode
. Musimy oczywiście podać nazwę pliku i znak rozdzielający poszczególne elementy
function LoadFromFile($filename, $divch){
$data = file ($filename);
$i = 0;
while($i<count($data)) {
$data[$i] = explode($divch,$data[$i]);
$i++;
}
return $data;
}
Aktualizacja 06.09.2023
Powyższy kod jest nie do końca poprawny ze względu np. na to, że tekst może znajdować się między znakami apostrofa. Prościej i skuteczniej jest użyć wbudowanej w php funkcji str_getcsv
np. tak:
$data = array_map ('str_getcsv', file ('plik.csv') );
file
– pobiera zawartość pliku i zapisuje każdą linię w osobnym wierszu tablicy
str_getcsv
– wyciąga dane z wiersza (separatorem jest przecinek)
array_map
– każdy element tablicy przekazany przez file wrzuca do funkcji str_getcsv
Czasami chcemy, aby separatorem był inny znak (np. średnik). Możemy wtedy do array_map
dodać dodatkowe argumenty. obsługiwane przez funkcję str_getcsv
.
$data = array_map ('str_getcsv', file ('plik.csv'), ';' );