Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Работа с классами
- Создайте класс для работы с csv в классе должны быть функции :
- разбор данных из csv в массив
- превращение данных из массива в csv
- запись данных в базу данных
- выгрузка данных из бд в csv файл
- */
- <?php
- class Csv {
- private $db;
- private $dbHost;
- private $dbUser;
- private $dbPass;
- private $dbCharset;
- private $dbOptions;
- private $dbTable;
- private $createFileName = 'user.csv';
- private $workFileName = 'users.csv';
- public function __construct($table) {
- $this->dbTable = $table;
- }
- public function parseData($data) {
- if (is_array($data)) {
- $fileOpen = fopen($this->createFileName, 'a+');
- foreach ($data as $value) {
- fwrite($fileOpen, '"' . implode($value, '";"') . PHP_EOL);
- }
- fclose($fileOpen);
- } else {
- $fileOpen = fopen($this->workFileName, 'r');
- $arr = [];
- while ($fileArray = fgetcsv($fileOpen, 1000, ';')) {
- $arr[] = $fileArray;
- }
- fclose($fileOpen);
- return $arr;
- }
- }
- private function connectDb() {
- $dsn = "mysql:host=$this->dbHost;dbname=$this->db;charset=$this->dbCharset";
- $pdo = new PDO($dsn, $this->dbUser, $this->dbPass, $this->dbOptions);
- return $pdo;
- }
- public function insertData($data) {
- foreach ($data as $arr) {
- $newArr = [];
- for ($i = 1; $i < count($arr) - 2; $i++) {
- $elem = $arr[$i];
- if (is_numeric($elem)) {
- $newArr[] = (int) $elem;
- } else {
- $newArr[] = $elem;
- }
- }
- $sql = "INSERT INTO $this->dbTable(`nick_name`,`user_name`,`age`,`surname`,`email`,`password`,`date_of_birth`) VALUES(?,?,?,?,?,?,?)";
- $query = $this->connectDb()->prepare($sql);
- $query->execute($newArr);
- }
- }
- public function uploadingData($fields, $where = '') {
- $sql = "SELECT $fields FROM $this->dbTable $where";
- $query = $this->connectDb()->prepare($sql);
- $query->execute();
- $sth = $query->fetchAll();
- $this->parseData($sth);
- }
- public function setConfig($host, $db, $user, $pass, $charset, $options) {
- $this->dbHost = $host;
- $this->db = $db;
- $this->dbUser = $user;
- $this->dbPass = $pass;
- $this->dbCharset = $charset;
- $this->dbOptions = $options;
- }
- private function cleanData($value) {
- $value = trim($value);
- $value = strip_tags($value);
- $value = stripcslashes($value);
- return $value;
- }
- }
- $csv = new Csv('users');
- $csv->setConfig('127.0.0.1', 'file', 'root', '', 'utf8', [
- PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
- PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
- ]);
- $res = $csv->uploadingData('*');
- //var_dump($csv->parseData('user.csv'));
- //$csv->insertData($csv->parseData('user.csv'));
Add Comment
Please, Sign In to add comment