Освітлюємо магію обробки CSV файлів за допомогою PHP: Від зчитування до збереження даних

У цьому пості ми розглянемо, як з допомогою мови програмування PHP можна ефективно працювати з даними у форматі CSV. Використовуючи PHP, ми можемо легко читати та записувати CSV файли, що є корисним навиком для розробників, які працюють з великими обсягами даних.

Читаємо CSV файл

Перший крок у роботі з CSV файлом — його зчитування. Нижче представлено функцію `readCsvFile`, яка демонструє, як відкрити і зчитати CSV файл у PHP:

function readCsvFile(string $csvFilePath) : array
{
    // Open the file in read mode
    if (($handle = fopen($csvFilePath, "r")) !== FALSE) {
        $csvData = []; // Initialize an empty array to store the CSV data

        // Loop through each line of the file
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $csvData[] = $data; // Add the row to the array
        }

        fclose($handle); // Close the file handle

        // Here we can process the $csvData array as needed
        return $csvData;
    } else {
        // Handle error if the file can't be opened
        die("Error opening the file: " . $csvFilePath . "\n");
    }
}

Ця функція відкриває файл у режимі читання і зчитує його рядок за рядком. Дані з кожного рядка зберігаються у масиві `$csvData`, який потім повертається з функції. Цей підхід дозволяє легко маніпулювати зчитаними даними всередині програми.

Записуємо дані в CSV файл

Після обробки даних можна зберегти їх назад у форматі CSV. Функція `saveArrayToCSV` показує, як можна записати масив даних у файл CSV:

function saveArrayToCSV(array $array, string $filePath)
{
    $fileHandle = fopen($filePath, 'w'); // Open the file for writing

    if ($fileHandle === false) {
        throw new Exception("Failed to open the file for writing." . PHP_EOL);
    }

    foreach ($array as $row) {
        if (fputcsv($fileHandle, $row) === false) {
            throw new Exception("Failed to write data to the file." . PHP_EOL);
        }
    }

    fclose($fileHandle); // Close the file
}

Ця функція відкриває файл для запису і перебирає масив, записуючи кожен рядок у файл. Функція `fputcsv()` автоматично форматує кожен рядок масиву як рядок CSV.

Висновок

Робота з CSV файлами у PHP — це зручний спосіб обробки даних, особливо коли мова йде про імпорт та експорт великих даних. Наведені вище функції `readCsvFile` та `saveArrayToCSV` демонструють, як легко можна імплементувати таку обробку у своїх PHP проектах. Незалежно від вашої цілі — чи то обробка звітів, імпорт даних користувачів або просто зберігання інформації — ці функції допоможуть вам ефективно управляти вашими даними.