. * */ class Configuracion { private $configuracion = "inc/configuracion.inc"; private $confNueva = "inc/configuracion.new"; private $confAnterior = "inc/configuracion.ant"; private $datosConf; //Campos del fichero de configuración que se van a editar. private $lista = array('SERVIDOR', 'PUERTO', 'BASEDATOS', 'BASEDATOSTEST', 'USUARIO', 'CLAVE', 'CENTRO', 'NUMFILAS', 'ESTILO', 'PLANTILLA', 'COLORLAT', 'COLORFON', 'MYSQLDUMP', 'GZIP'); private $campos; public function __construct() { $this->campos = implode(",", $this->lista); } //Hecho público para poder efectuar los tests correspondientes. public function obtieneFichero() { return file_get_contents($this->configuracion, FILE_TEXT); } public function obtieneLista() { return $this->lista; } public function obtieneDatos($linea, &$clave, &$valor) { $filtro = str_replace("'", "", $linea); list($clave, $valor) = explode(",", $filtro); list($resto, $campo) = explode("(", $clave); list($valor, $resto) = explode(")", $valor); list($resto, $clave) = explode("(", $clave); $valor = trim($valor); } public function ejecuta() { $fichero = $this->obtieneFichero(); $datos = explode("\n", $fichero); $grabar = isset($_POST['SERVIDOR']); if ($grabar) { $fsalida = @fopen($this->confNueva, "wb"); } foreach ($datos as $linea) { if (stripos($linea, "DEFINE") !== false) { //Comprueba que tenga una definición correcta $this->obtieneDatos($linea, $clave, $valor); $this->datosConf[$clave] = $valor; if ($grabar && stripos($this->campos, $clave) !== false) { $linea = str_replace($valor, $_POST[$clave], $linea); $this->datosConf[$clave] = $_POST[$clave]; } //$salida = "DatosConf=".var_export($this->datosConf, true) . "stripos = " . stripos($campos, "GZIP"); //$salida .= "Post=" . var_export($_POST, true); } if ($grabar) { $registro = substr($linea, 0, 2) == "?>" ? $linea : $linea . "\n"; fwrite($fsalida, $registro); } } $salida.=$this->formulario(); if ($grabar) { $salida.='