Guest User

Untitled

a guest
Mar 7th, 2018
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.11 KB | None | 0 0
  1. /*
  2. Работа с классами
  3. Создайте класс для работы с csv в классе должны быть функции :
  4. разбор данных из csv в массив
  5. превращение данных из массива в csv
  6. запись данных в базу данных
  7. выгрузка данных из бд в csv файл
  8. */
  9. <?php
  10.  
  11. class Csv {
  12.  
  13. private $db;
  14. private $dbHost;
  15. private $dbUser;
  16. private $dbPass;
  17. private $dbCharset;
  18. private $dbOptions;
  19. private $dbTable;
  20. private $createFileName = 'user.csv';
  21. private $workFileName = 'users.csv';
  22.  
  23. public function __construct($table) {
  24. $this->dbTable = $table;
  25. }
  26.  
  27. public function parseData($data) {
  28. if (is_array($data)) {
  29. $fileOpen = fopen($this->createFileName, 'a+');
  30. foreach ($data as $value) {
  31. fwrite($fileOpen, '"' . implode($value, '";"') . PHP_EOL);
  32. }
  33. fclose($fileOpen);
  34. } else {
  35. $fileOpen = fopen($this->workFileName, 'r');
  36. $arr = [];
  37. while ($fileArray = fgetcsv($fileOpen, 1000, ';')) {
  38. $arr[] = $fileArray;
  39. }
  40. fclose($fileOpen);
  41. return $arr;
  42. }
  43. }
  44.  
  45. private function connectDb() {
  46. $dsn = "mysql:host=$this->dbHost;dbname=$this->db;charset=$this->dbCharset";
  47. $pdo = new PDO($dsn, $this->dbUser, $this->dbPass, $this->dbOptions);
  48. return $pdo;
  49. }
  50.  
  51. public function insertData($data) {
  52. foreach ($data as $arr) {
  53. $newArr = [];
  54. for ($i = 1; $i < count($arr) - 2; $i++) {
  55. $elem = $arr[$i];
  56. if (is_numeric($elem)) {
  57. $newArr[] = (int) $elem;
  58. } else {
  59. $newArr[] = $elem;
  60. }
  61. }
  62. $sql = "INSERT INTO $this->dbTable(`nick_name`,`user_name`,`age`,`surname`,`email`,`password`,`date_of_birth`) VALUES(?,?,?,?,?,?,?)";
  63. $query = $this->connectDb()->prepare($sql);
  64. $query->execute($newArr);
  65. }
  66. }
  67.  
  68. public function uploadingData($fields, $where = '') {
  69. $sql = "SELECT $fields FROM $this->dbTable $where";
  70. $query = $this->connectDb()->prepare($sql);
  71. $query->execute();
  72. $sth = $query->fetchAll();
  73. $this->parseData($sth);
  74. }
  75.  
  76. public function setConfig($host, $db, $user, $pass, $charset, $options) {
  77. $this->dbHost = $host;
  78. $this->db = $db;
  79. $this->dbUser = $user;
  80. $this->dbPass = $pass;
  81. $this->dbCharset = $charset;
  82. $this->dbOptions = $options;
  83. }
  84.  
  85. private function cleanData($value) {
  86. $value = trim($value);
  87. $value = strip_tags($value);
  88. $value = stripcslashes($value);
  89. return $value;
  90. }
  91.  
  92. }
  93.  
  94. $csv = new Csv('users');
  95. $csv->setConfig('127.0.0.1', 'file', 'root', '', 'utf8', [
  96. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  97. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
  98. ]);
  99.  
  100.  
  101. $res = $csv->uploadingData('*');
  102. //var_dump($csv->parseData('user.csv'));
  103. //$csv->insertData($csv->parseData('user.csv'));
Add Comment
Please, Sign In to add comment