Código de PHP - FormatoSimple

sin imagen de perfil

FormatoSimplegráfica de visualizaciones


PHP

Publicado el 5 de Febrero del 2017 por Aldo Tellez (8 códigos)
1.864 visualizaciones desde el 5 de Febrero del 2017
En muchos de los casos en que manejamos bases de texto plano se necesita cargar o almacenar los
valores contenidos en el, para un uso posterior o para su fácil manipulación. FormatoSimple es una
pequeña librería que permite manejar archivos de texto plano como Txt, Yaml, Properties e Ini.

1.0
estrellaestrellaestrellaestrellaestrella(2)

Actualizado el 19 de Abril del 2017 (Publicado el 5 de Febrero del 2017)gráfica de visualizaciones de la versión: 1.0
1.865 visualizaciones desde el 5 de Febrero del 2017
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?php
/*FormatoSimple v1.0
  Formatos simples: Txt, Yaml, Properties e 'Ini

  Cuando queremos transmitir datos, almacenar la configuración o guardar
  datos para un uso posterior.
  tellez.franco.aldo@gmail.com

  CC BY-NC :https://creativecommons.org/licenses/by-nc/4.0/legalcode
 */

class FormatoSimple {

    private $Archivo;
    private $matrizDatos = array();
    private $Extension = array(
        0 => '.txt',
        1 => '.ini',
        2 => '.yml',
        3 => '.properties');

    function FormatoSimple($Archivo) {
        $this->Archivo = $Archivo;
    }

//muestra los datos de forma liteal
    public function MostrarDatos() {
        if (self::Extension()) {
            return str_replace(chr(0xC2) . chr(0xA0), ' ', file_get_contents($this->Archivo));
        } else {
            self::ERROR('LECTURA');
        }
    }

//genera un nuevo archivo
    public function NuevoArchivo($Datos) {
        if (self::Extension()) {
            if (file_exists($this->Archivo)) {
                self::ERROR('EXISTENTE');
            } else {
                file_put_contents($this->Archivo, $Datos);
                return TRUE;
            }
        } else {
            self::ERROR('EXTENSION');
        }
    }

//elimina el archivo
    public function EliminarArchivo() {
        unlink($this->Archivo);
        return TRUE;
    }

//Escribir una cadena sobre un archivo
    public function AgregarDatos($Datos) {
        if ($Datos != '') {
            file_put_contents($this->Archivo, "\n" . $Datos, FILE_APPEND);
            return TRUE;
        } else {
            return FALSE;
        }
    }

//sobrescribe una cadena sobre un archivo
    public function EditarDatos($Datos) {
        if ($Datos != '') {
            file_put_contents($this->Archivo, $Datos);
            return TRUE;
        } else {
            return FALSE;
        }
    }

//apunta a una linea especifica otorgada
    public function IrLinea($linea) {
        return self::LineaDatos($linea);
    }

//suprime los datos designados por el numero de linea
    public function EliminarLinea($linea) {
        if (self::LineaDatos($linea)) {
            unset($this->matrizDatos[$linea - 1]);
            self::EditarDatos($this->matrizDatos);
            return TRUE;
        } else {
            return FALSE;
        }
    }

//sustituye la linea con los datos de la matriz por una cadena especifica. 
    public function EditarLinea($linea, $texto) {
        if (self::LineaDatos($linea)) {
            array_splice($this->matrizDatos, $linea - 1, 1, $texto . "\n");
            self::EditarDatos($this->matrizDatos);
            return TRUE;
        } else {
            return FALSE;
        }
    }

//comprueba que la extencion del archivo sea valida
    function Extension() {
        for ($i = 0; $i < count($this->Extension); $i++) {
            if (substr($this->Archivo, strpos($this->Archivo, ".")) == $this->Extension[$i]) {
                return $this->Extension[$i];
            }
        }
    }

//lee el contenido del archivo  especificado, y devuelve  una matriz asociativa. 
    public function MapearDatos() {
        foreach (file($this->Archivo) as $clave => $valor) {
            $this->matrizDatos[$clave] = $valor;
        }
        return $this->matrizDatos;
    }
    public function ContarDatos() {
     return count(self::MapearDatos());

    }
//Comprueba si el índice o clave otorgada existe en la matriz y devuelve su valor
    public function LineaDatos($linea) {
        if ($linea != '') {
            $linea = $linea - 1;
            if (array_key_exists($linea, self::MapearDatos())) {
                return $this->matrizDatos[$linea];
            }
        } else {
            self::ERROR('LINEA');
        }
    }

//busca la cadena otorgada separada por un caracter y devuelve el numero de linea
    public function BuscardorClave($clave, $separador) {
        for ($i = 0; $i < count(self::MapearDatos()); $i++) {
            if (substr($this->matrizDatos[$i], 0, strpos($this->matrizDatos[$i], $separador)) == $clave) {
                return $i + 1;
                break;
            }
        }
    }
	
	//busca la cadena de texto que es referida a la clave
	 public function BuscarValorClave($texto,$separador) {
                return substr(self::IrLinea(self::BuscardorClave($texto, $separador)), strpos(self::IrLinea(self::BuscardorClave($texto, $separador)), $separador) + 1);    
    }
	
//busca la cadena y devuelve el valor despues del caracter 	"=" ,":" o definido
    public function BuscarDato($texto,$separador=false) {
		if($separador){
			return self::BuscarValorClave($texto,$separador);
		}else{
			  switch (self::Extension()) {
            case ".ini" || ".properties":
                return self::BuscarValorClave($texto,"=");
                break;
            case ".yml":
                return self::BuscarValorClave($texto,":");
                break;
        }
		}
      
    }

    public function ERROR($msg) {
        echo "ERROR_" . $msg;
    }

}
?>



Comentarios sobre la versión: 1.0 (2)

Imágen de perfil
5 de Febrero del 2017
estrellaestrellaestrellaestrellaestrella
Excelente aporte, porque es algo que se usa en muchos proyectos y siempre a trabajarlo... aunque normalmente no haya que hacer el trabajo una y otra vez, porque haces un copy/paste de las funciones que desarrollaste para un trabajo pasado y listo, pero una biblioteca sencillita para estas tareas es mejor opción. Gracias
Responder
Imágen de perfil
6 de Febrero del 2017
estrellaestrellaestrellaestrellaestrella
Muy útil !!!
Responder

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3859