
almacenar un array en n numero de archivos
Publicado por Freddy (5 intervenciones) el 06/06/2014 04:37:38
Saludos, espero y me puedan ayudar con un problemita.
De que forma puedo guardar el contenido de un array que se crea con, una cabecera y... digamos 1002 registros, en varios archivos de una misma extencion (CSV, TXT, HTML), el detalle es que tengo la opcion de limitar el numero de registros y si el limite es de 200 entonces me crea ra 6 archivos x con su respectiva cabecera + sus 200 registros creados.
Ejemplo:
Perdon por escribir con mayusculas pero queria resaltar la parte a analizar, por lo tanto, espero tener una respuesta favorable lo mas pronto posible.
De que forma puedo guardar el contenido de un array que se crea con, una cabecera y... digamos 1002 registros, en varios archivos de una misma extencion (CSV, TXT, HTML), el detalle es que tengo la opcion de limitar el numero de registros y si el limite es de 200 entonces me crea ra 6 archivos x con su respectiva cabecera + sus 200 registros creados.
Ejemplo:
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
$_lista = $_POST['lista']; // ejemplo 1002 correos
$no_mails = $_POST['no_mails']; // ejemplo 200
$_archivo = $_POST['archivo']; //Define el nombre del archivo
$_tipo = $_POST['tipo']; //Define el tipo de archivo
$ar_lista = explode('
',$_lista);
$no_lista = count($ar_lista)/$no_mails;
if(($no_lista) > count((int)($ar_lista)/$no_mails))
{
$_total = ((int)$no_lista + 1);
echo "Numero de emails:".count($ar_lista)."<br>Numero de listas:".$_total."<br>";
}else
{
$_total = ((int)$no_lista + 1);
echo "Numero de emails:".count($ar_lista)."<br>Numero de listas:".$_total."<br>";
}
// Directorio donde se crean, almacenan y llenan las listas generadas
for($x=0;$x<$_total;$x++){
$mkfile2 = "listas/".$_archivo.''.date('dmy h-m-s').' ('.$x.').'.$_tipo;
echo "<br>Download ---> <a href='".$mkfile2."' target='_blank'>".$mkfile2."</a><br>";
if (file_exists($mkfile2)) {
//echo "<b>Make File \"".htmlspecialchars($mkfile2)."\"</b>: object alredy exists";
}elseif ($fl = fopen($mkfile2,"w"))
{
// $_base ES EL CONTENIDO DE LA CABECERA
$_base = base64_decode('IkUtbWFpbCBBZGRyZXNzIiwiRS1tYWlsIFR5cGUi').'
';
// base64_decode= "E-mail Address","E-mail Type"
fwrite($fl,$_base);
// APARTIR DE AQUI SE EMPIESA HA ESCRIBIR EL CONTENIDO EN LA LISTA PERO TODOS LOS REGISTROS ME LOS MANDA A UNA SOLO ARCHIVO PERO COMO TENEMOS UN LIMITADOR $no_mails ME TENDRIA QUE GUARDAR 200 REGISTROS EN LAS PRIMERAS 5 LISTAS Y EN LA ULTIMA 2 REGISTROS, TODOS CON SU RESPECTIVA CABECERA QUE ES $_base.
$_contenido ='.$ar_lista[$x].'","SMTP"
';
fwrite($fl,$_contenido);
}
fclose($fl);
}
}
Perdon por escribir con mayusculas pero queria resaltar la parte a analizar, por lo tanto, espero tener una respuesta favorable lo mas pronto posible.
Valora esta pregunta


0