0byt3m1n1-V2
Path:
/
home
/
magalijoj
/
www
/
blog
/
plugins
/
importExport
/
[
Home
]
File: class.db.export.php
<?php # ***** BEGIN LICENSE BLOCK ***** # This file is part of DotClear. # Copyright (c) 2004 Olivier Meunier and contributors. All rights # reserved. # # DotClear is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # DotClear is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with DotClear; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # ***** END LICENSE BLOCK ***** class dbExport { private $con; private $prefix; private $line_replacement = array( "\n" => '\n', "\r" => '\r', '"' => '\"' ); public $fp; function __construct(&$con,$out='php://output',$prefix=null) { $this->con =& $con; $this->prefix = $prefix; if (($this->fp = fopen($out,'w')) === false) { return false; } } function __destruct() { if (is_resource($this->fp)) { fclose($this->fp); } } function export($name,$sql) { $rs = $this->con->select($sql); if (!$rs->isEmpty()) { fwrite($this->fp,"\n[".$name.' '.implode(',',$rs->columns())."]\n"); while ($rs->fetch()) { fwrite($this->fp,$this->getLine($rs)); fflush($this->fp); } } } function exportAll() { $tables = $this->getTables(); foreach ($tables as $table) { $this->exportTable($table); } } function exportTable($table) { $req = 'SELECT * FROM '.$this->con->escapeSystem($this->prefix.$table); $this->export($table,$req); } function getTables() { $schema = dbSchema::init($this->con); $db_tables = $schema->getTables(); $tables = array(); foreach ($db_tables as $t) { if ($this->prefix) { if (strpos($t,$this->prefix) === 0) { $tables[] = $t; } } else { $tables[] = $t; } } return $tables; } function getLine(&$rs) { $l = array(); foreach ($rs->columns() as $i => $c) { $l[$i] = str_replace(array_keys($this->line_replacement),array_values($this->line_replacement),$rs->f($c)); $l[$i] = '"'.$l[$i].'"'; } return implode(',',$l)."\n"; } } ?>
©
2018.