Foros del Web » Programando para Internet » PHP »

Guardar datos de gran tamano

Estas en el tema de Guardar datos de gran tamano en el foro de PHP en Foros del Web. Hola estoy pensando en hacer una aplicaron que utiliza canvas. Esta aplicación necesita guardar gran cantidad de datos que están en arrays. Algún consejo de ...
  #1 (permalink)  
Antiguo 27/02/2014, 07:09
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Guardar datos de gran tamano

Hola estoy pensando en hacer una aplicaron que utiliza canvas. Esta aplicación necesita guardar gran cantidad de datos que están en arrays. Algún consejo de como guardar lo ? Pienso que en archivos seria la mejor forma pero como guardar los y recuperar los como estaban? Y luego si están en archivos como proteger los contra lectura osea que pueda editar los y leer los datos solo yo.
  #2 (permalink)  
Antiguo 27/02/2014, 14:58
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Guardar datos de gran tamano

solo tu puedes editarlos, nadie mas tiene accesso al servidor. puedes impedir la lectura con .htaccess

puedes guardarlos en formato json con esto o serializados con esto
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 03/03/2014, 09:01
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Guardar datos de gran tamano

Hola, yo hice algo igual para hacer firmas digitales desde un canvas.

el codigo php para que esto funcione es el siguiente:


$componentes = split(",",$miimagen);
$Data = base64_decode($componentes[1]);

Donde $miimagen es lo escrito en el canvas.

Si necesitas que sea mas especifico deja un mensaje
  #4 (permalink)  
Antiguo 03/03/2014, 09:14
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Guardar datos de gran tamano

Se me paso algo para guardarlo en un archivo seria así:

//escribir sobre el mismo archivo PLANO
$registro_donacion=$nombre_archivo.' '.$fecha;

$ruta = 'ruta'.txt';
$contenido= $Data;
$archivo=fopen($ruta,'a');
fwrite($archivo,"\r\n".$contenido);
fclose($archivo);
  #5 (permalink)  
Antiguo 07/03/2014, 12:46
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Guardar datos de gran tamano

Hola gracias a los dos pero creo que json seria mejor ya que tengo los datos estructurados de mi manera y luego recuperar los igual en arrays y objetos y no como un dibujo de canvas para así poder editar lo ya dibujado.

Una sola cosa json es rápido? Simplemente por curiosidad comparado con otros métodos de guardar los datos.
  #6 (permalink)  
Antiguo 07/03/2014, 15:05
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Guardar datos de gran tamano

Cita:
Iniciado por patilanz Ver Mensaje
Hola gracias a los dos pero creo que json seria mejor ya que tengo los datos estructurados de mi manera y luego recuperar los igual en arrays y objetos y no como un dibujo de canvas para así poder editar lo ya dibujado.

Una sola cosa json es rápido? Simplemente por curiosidad comparado con otros métodos de guardar los datos.
Es una mala idea guardar datos muy grande en archivos secuenciales, si quieres hacer eso usa mejor SQLLite3:
Cita:
  • Replacement for ad hoc disk files
    Many programs use fopen(), fread(), and fwrite() to create and manage files of data in home-grown formats. SQLite works particularly well as a replacement for these ad hoc data files.
Fuente: http://www.sqlite.org/whentouse.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 07/03/2014, 18:32
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Guardar datos de gran tamano

Cita:
Es una mala idea guardar datos muy grande en archivos secuenciales, si quieres hacer eso usa mejor SQLLite3:
Debo decir, que no es del todo cierto, y que en el caso particular que se planteo no es conveniente.
¿Porque? Simplemente porque lo que se va a guardar es un unico bloque de datos inmenso, estos datos pueden ser leidos de un saque con file_gets_contents(). SQlite solo es mas eficiente (y solo es util, ademas) cuando quieres realizar operaciones sobre esos datos, cuando necesitas filtrarlo o editar datos particulares ahi si sera util. Piensa esto, si fuese como tu afirmas, ¿Cuando generamos cache de mysql, la deberíamos guardar en sqlite? la respuesta obvia es que no, nadie cachea una base de datos para guardar los resultados en otra.


Cita:
Una sola cosa json es rápido? Simplemente por curiosidad comparado con otros métodos de guardar los datos.
Ventajas de json:
json_encode() es un metodo muy rapido para codificar.
el codigo generado es amigable para los humanos y puede editarse con editor de texto.
es una estructura portable que soportan muchos lenguajes y plataformas y es ideal para cargas asincronas.

Contras de json:
json_decode() es lento y se debe prestar atencion a sus parametros, ya que puede devolver un objeto en lugar de un array asociativo.
el codigo generado ocupa mucho espacio.

Ventajas de serialize:
La deserializacion de datos es muy rapida
el codigo generado ocupa poco espacio

Contras de serialize:
el codigo que genera no es amigable para los humanos y no puede editarse con un editor de texto
la serializacion es lenta.


como podras notar, las ventajas de uno son las contras del otro y viceversa, asi que debes plantearte lo siguiente:

El archivo va leerse mas veces que a escribirse? usa serialize
El archivo va a escribirse mas veces que a leerse? usa json

siempre hablando en casos generales
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:01.