1: <?php
2: 3: 4: 5: 6: 7:
8:
9: namespace GLFramework\DaMa;
10:
11: use GLFramework\DaMa\Manipulators\CSVManipulator;
12: use GLFramework\DaMa\Manipulators\XLSManipulator;
13: use GLFramework\DaMa\Manipulators\XLSXManipulator;
14:
15: define('DATA_MANIPULATION_CREATE_MODE_AUTO', 0);
16: define('DATA_MANIPULATION_CREATE_MODE_CSV', 1);
17: define('DATA_MANIPULATION_CREATE_MODE_XLS', 2);
18: define('DATA_MANIPULATION_CREATE_MODE_XLSX', 3);
19: define('DATA_MANIPULATION_CREATE_MODE_ODS', 4);
20:
21: class DataManipulation
22: {
23: public function rename_extension($file, $original)
24: {
25: $name = $file . $this->getFileExtension($original);
26: rename($file, $name);
27: return $name;
28:
29: }
30:
31: public function getFileExtension($file)
32: {
33: return substr($file, strrpos($file, "."));
34: }
35: public function getModeByFile($file)
36: {
37: if(strpos($file, ".") !== FALSE)
38: {
39: $ext = substr($file, strrpos($file, "."));
40: if($ext == ".csv") return DATA_MANIPULATION_CREATE_MODE_CSV;
41: if($ext == ".xls") return DATA_MANIPULATION_CREATE_MODE_XLS;
42: if($ext == ".xlsx") return DATA_MANIPULATION_CREATE_MODE_XLSX;
43: if($ext == ".ods") return DATA_MANIPULATION_CREATE_MODE_ODS;
44: }
45: }
46: 47: 48: 49: 50:
51: public function createFromFile($file, $mode = DATA_MANIPULATION_CREATE_MODE_AUTO)
52: {
53: $manipulator = new Manipulator();
54: $manipulator->setFilename($file);
55: if($mode == DATA_MANIPULATION_CREATE_MODE_AUTO)
56: {
57: $mode = $this->getModeByFile($file);
58: }
59: if($mode == DATA_MANIPULATION_CREATE_MODE_ODS) $manipulator->setCore(new CSVManipulator());
60: else if($mode == DATA_MANIPULATION_CREATE_MODE_XLS) $manipulator->setCore(new XLSManipulator());
61: else if($mode == DATA_MANIPULATION_CREATE_MODE_XLSX) $manipulator->setCore(new XLSXManipulator());
62: else $manipulator->setCore(new CSVManipulator());
63:
64: return $manipulator;
65: }
66: }