<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Класс-парсер CSV файлов на PHP

Класс-парсер CSV файлов на PHP

Данный класс позволяет разобрать содержимое CSV файла для дальнейшей обработки.

<?php

// класса для разбора csv файла
class CsvParser
{
    // указатель на файл
    protected $handle;
    
    // заголовок csv файла
    protected $header;

    /**
     * Открываем файл на чтение
     * 
     * @param $file
     * @param bool $header
     * @return $this
     * @throws \Exception
     */
    public function open($file, $header = true)
    {
        $this->handle = fopen($file, 'r');
        if (!$this->handle) {
            throw new Exception('Невозможно прочитать файл ' . $file);
        }
        if ($header) {
            $this->header = fgetcsv($this->handle);
        }
        return $this;
    }

    /**
    * Разбирает файл, передавая данные из файла
    * в коллбэк функцию
    *
    */
    public function parse(callable $callable)
    {
        if (!$this->handle) {
            throw new Exception('Файл не открыт!');
        }
        while (($data = fgetcsv($this->handle)) !== false) {
            if ($this->header) {
                $data = array_combine($this->header, $data);
            }
            // вызываем коллбэк, первый аргумент данные, второй ссылка на объект
            $callable($data, $this);
        }
    }


    public function __destruct() {
        $this->close();
    }


    public function close()
    {
        if ($this->handle) {
            fclose($this->handle);
            $this->handle = null;
        }
    }


    public function value($row, $field) {
        return $row[$field];
    }
}

Данные для разбора:

name, price, delivery
Iphone 11, 56980, yes
Samsung Galaxy 12, 59980, yes
Nokia Duo, 12990, no

Используем так:

<?php

    require_once 'CsvParser.php';
    
    
    $file = 'programs.csv';
    
    (new CsvParser())->open($file)->parse(function ($data, CsvParser $csv) {
        
        foreach ($data as $value) {
            //$value = $csv->value($data, $fieldName);
            print $value . PHP_EOL;
        }
    
    });

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (2):

ovpmusic ovpmusic 02.04.2024 20:12:14

Михаил, здравствуйте! Попробовал ваш парсер, хорошая реализация. Однако, он не выводит данные если в есть нулевые значения в csv файле. Подскажите, пожалуйста, что нужно изменить, чтобы он выводил все, независимо от значения. Вот кусок файла, который я пытаюсь распарсить: "1695668019,NULL,26643982,Balance,0.01,0.00,0.00000,0.00000,1695668019,0.00,0.00,0.00,250.00,0,82GR44TF5M2PJKZX 1695668865,GBPUSD,26644477,buy,0.01,1.22171,0.00000,1.21746,1695899697,1.21684,-0.05,-0.15,-4.87,202309,GBPUSDTsunami BUY (202309) #0 1695726000,GBPUSD,26661159,buy,0.02,1.21732,0.00000,1.21746,1695899696,1.21683,-0.09,-0.25,-0.98,202309,GBPUSDTsunami BUY (202309) #1 1695801600,GBPUSD,26697358,buy,0.04,1.21470,0.00000,1.21751,1695818888,1.21489,-0.18,0.00,0.76,202309,GBPUSDTsunami BUY (202309) #2" Первая строчка не выводится вообще... Здесь пример: https://profitea.ru/?do=testcsv

Ответить

ovpmusic ovpmusic 03.04.2024 10:20:28

Здравствуйте, Михаил! Не дождался вашего ответа... Исправление для предыдущего комментария: Обнаружил (проводил различные эксперименты), что парсер не выводит первую строку из csv файла, а не строки с нулевыми значениями. В связи с этим изменяю свой вопрос: Что и где нужно поправить, чтобы парсер выводил все строки из csv файла? Заранее благодарю за помощь и поддержку!

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.