From 8b105e4256b24dc26d6cda7d6053e4b0887d956a Mon Sep 17 00:00:00 2001 From: Mihail Date: Thu, 27 Aug 2015 14:07:46 +0300 Subject: [PATCH] add Encoder class --- backend/components/parsers/CsvParser.php | 44 ++++++++++++++------------------------------ backend/components/parsers/Encoder.php | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ backend/controllers/ParserController.php | 2 +- 3 files changed, 65 insertions(+), 31 deletions(-) create mode 100644 backend/components/parsers/Encoder.php diff --git a/backend/components/parsers/CsvParser.php b/backend/components/parsers/CsvParser.php index e9d9100..8ffc4a7 100644 --- a/backend/components/parsers/CsvParser.php +++ b/backend/components/parsers/CsvParser.php @@ -27,27 +27,7 @@ class CsvParser implements \IteratorAggregate { /** @var out encoding charset */ private $first_line; - - - -// public function encodeFile( $in_charset, $out_charset, $filePath ){ -// -// $old_content = file_get_contents( $filePath ); -// $encode_content = iconv( $in_charset, $out_charset, $old_content ); -// $file = @fopen( $filePath, "w" ); -// fwrite( $file, $encode_content ); -// @fclose( $file ); -// -// } - - - /** - * @param string $delimiter - * @param string $enclosure - * @param string $escape - * @return $this - */ - public function setup( $file, $first_line = 1, $hasHeaderRow = TRUE, $delimiter = ';') + public function setup( $file, $first_line, $hasHeaderRow = TRUE, $delimiter = ';') { $this->file = $file; @@ -82,6 +62,7 @@ class CsvParser implements \IteratorAggregate { */ public function read() { + // @todo add comments $return = []; $line = 0; @@ -120,21 +101,24 @@ class CsvParser implements \IteratorAggregate { } private function readRow() + // @todo add comments { $dirt_value_arr = $this->file->fgetcsv( ); - $encode_arr = $this->encodeArray( $dirt_value_arr ); - return $encode_arr; - - } + $dirt_value_arr = array_slice( $dirt_value_arr, 2 ); + $clear_arr = Encoder::encodeArray( $this->in_charset, $this->out_charset, $dirt_value_arr ); - private function encodeArray( $array_to_encode ) - { - return array_map(function($array_to_encode) { - return iconv( $this->in_charset, $this->out_charset, $array_to_encode ); - }, $array_to_encode); + return $clear_arr; } +// private function encodeArray( $array_to_encode ) +// { +// return array_map(function($array_to_encode) { +// return iconv( $this->in_charset, $this->out_charset, $array_to_encode ); +// }, $array_to_encode); +// +// } + } \ No newline at end of file diff --git a/backend/components/parsers/Encoder.php b/backend/components/parsers/Encoder.php new file mode 100644 index 0000000..8ae2788 --- /dev/null +++ b/backend/components/parsers/Encoder.php @@ -0,0 +1,50 @@ +file->baseName . '.' . $model->file->extension; $model->file->saveAs( $filePath ); - $parser = new ParserHandler( $filePath, 0 ); + $parser = new ParserHandler( $filePath, 2 ); $data = $parser->run(); if( !is_array($data) ){ -- libgit2 0.21.4