| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | <?phpclass CsvController {    public function csvExport() {        $res = $this->db->Query($this->conf['export_query']);        if ($this->db->Error($this->conf['export_query'])) return false;        $firstRow = $res->fetch(PDO::FETCH_ASSOC);        if (!$firstRow) return false;        $columns = array_keys($firstRow);        $this->columnDetails = array();        for ($i = 0; $i < count($firstRow); $i++) {            $$this->column_details[$columns[$i]] = $this->getColumnTypeFromQuery($res, $i);        }        $header = $this->db->getHeaderNames($columns);            $fwh = fopen($this->conf['filename'], "w");        fwrite($fwh, implode(';', $header)."\n");        fwrite($fwh, implode(';', convertRow($firstRow))."\n");            while($row = $res->fetch(PDO::FETCH_ASSOC)) {            fwrite($fwh, implode(';', convertRow($row))."\n");        }        fclose($fwh);        return true;    }        public function csvConvert($tableArray)    {        $result = "";        foreach ($tableArray as $row)        {            $result .= implode(';', $this->convertRow($row)) . "\r\n";        }        return $result;    }                private function convertRow ($row) {        $result = array();            foreach ($row as $key => $value)         {            $result[] = $this->convertCell($value);        }        return $result;    }        private function convertCell ($cell, $format = "VAR_STRING") {        switch ($format) {            case 'VAR_STRING':                return trim($cell);            case 'FLOAT':            case 'NEWDECIMAL':                return number_format($cell, 2, ",", "");            case 'DATE':                return ($format == '0000-00-00') ? "" : $cell;            default:                return $cell;        }        return $cell;    }    }
 |