Foros del Web » Programando para Internet » PHP »

escribir archivo

Estas en el tema de escribir archivo en el foro de PHP en Foros del Web. buscando por ahi encontre este codigo para crear un archivo.. Código PHP: $fp  =  fopen ( "archivo.msg" ,  'w' ); //esto crea el archivo fclose ( $fp ); ...
  #1 (permalink)  
Antiguo 28/12/2005, 06:51
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
escribir archivo

buscando por ahi encontre este codigo para crear un archivo..

Código PHP:
$fp fopen("archivo.msg"'w');//esto crea el archivo
fclose($fp);//esto cierra el "puntero" del archivo 
ahora esa es la extension que me piden (no pregunten por que), la pregunta es como hago para escribir el archivo???

ya que este invento es por que el cliente no quiere que se le envie un mail, si no que se guarde en un archivo .msg (cosas de los clientes xD) tonces como deben suponer esto tiene header, cuerpo, y todo lo de la funcion mail().

bueno esperando que me ayuden

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #2 (permalink)  
Antiguo 28/12/2005, 07:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usando la función fwrite()

www.php.net/fwrite

Y dando el formato a tu archivo. Lo ideal sería que gestionases Base de datos (Mysql?) .. sobre todo para posibles analisis de esos datos recibidos y distribuirlos mejor para darles curso.

Por lo demás veo muy bien la idea de tu cliente en que no se generen e-mails .. realmente para esas cosas es muchooooo! más claro ir a ver los mensajes que realmente sirven que ir "navegando" entre mensajes en el e-mail tipo SPAM, Virus y demás .. (aunque .. claro todo el mundo se puede crear reglas de correo y demás ..).

(revisa las funciones de trabajo con archivos de PHP)

Un saludo,
  #3 (permalink)  
Antiguo 28/12/2005, 13:15
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
ah ocurrido otro problema, ya hice el sistema para crearlo y escribirlo pero no me habia fijado que quieren que tengo el sgte titulo ddmmaaa_unnumerocorrelativo.msg he tratado de crearlo pero no he podido
intente con un for pero como leo el archivo antes de crearlo para no sobreescribirlo?


saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #4 (permalink)  
Antiguo 28/12/2005, 13:44
Avatar de Master Solution  
Fecha de Ingreso: octubre-2005
Mensajes: 51
Antigüedad: 18 años, 6 meses
Puntos: 1
Para verificar que el archivo no existe ya, podes usar la funcion file_exists()

http://ar2.php.net/file_exists

Y para generar ese formato de nombre de archivo, podes hacer algo como lo siguiente:

Código PHP:
$random rand(0999999);

$fecha date("d-m-Y"time());

$nombre_archivo $fecha '_' $random '.msg'
Luego compruebas si el archivo existe con la funcion file_exists(), y lo creas si no existe, caso contrario vuelves a crear un nombre de archivo.
__________________
-=[ 3KLabs ]=-
-=[ Diseño - Programación - Desarrollo ]=-
-=[ Posicionamiento en Buscadores ]=-
-=[ Hosting de Calidad ]=-
  #5 (permalink)  
Antiguo 28/12/2005, 14:03
Avatar de marlx  
Fecha de Ingreso: febrero-2004
Ubicación: Viña del Mar - Chile
Mensajes: 55
Antigüedad: 20 años, 2 meses
Puntos: 0
Cita:
Iniciado por maralbust
ddmmaaa_unnumerocorrelativo.msg
En un trabajo me toco algo parecido, y en ese caso para generar el nombre del reporte usamos

Código PHP:
tipoReporte_ddmmmaaahhMMss 
donde:
hh es horas
MM es minutos
ss es segundos

con eso nos asegurabamos en gran parte que no se crearian nombres duplicados
__________________
Dim Mario as New Ingeniero
  #6 (permalink)  
Antiguo 28/12/2005, 14:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. ese n° correlativo . .en función a qué debe salir? .. en función a los mensajes que tienes o a los de ese día? .. o simplemente sobra con que sea único para que no se repita (como es el caso que plantea Master solution)?

¿No sería mejor dejar todo estos mensajes en una Base de datos? .. ahí tendrías registro de todo bien organizado, con posibilidad de infinidad de analisis de esos datos .. etc ..

Un saludo,
  #7 (permalink)  
Antiguo 28/12/2005, 14:22
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
la idea esta buena pro debe seguir un correlativo y en eso no quieren transar


ayuda plis
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #8 (permalink)  
Antiguo 28/12/2005, 14:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. insisto . .un "correlativo" se puede tomar en función de algo ..

Lo normal sería de todos los archivos que tengas (que serían tus mensajes) .. el problema vendrá cuando borres algún archivo . .ahí el "correlativo" se ira a ............. (puntos suspensivos).

Podrías tener un archivo extra que guarde ese correlativo .. y lo vas incrementado siempre que generes un archivo (y dejandolo como esté si es que borras algún archivo).

No sé que te parece la idea .. pero hay que pensarse bien lo que te comento de basarse en los archivos que puedas tener .. es peligroso. (bueno .. de todas formas siempre verificaras antes de escribir el archivo si existe . .pero como eso no debería suceder nunca tendrás que implementar toda la sección de "administración" para solventar ese problema si ocurre ... desde darle otro n° descuadrando todo tal vez .. o ver que haces en ese caso.).

Un saludo,
  #9 (permalink)  
Antiguo 28/12/2005, 14:27
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
deben seguir un orden correlativo empiza con 157000 (que es lo que llevan) y de hay en adelante se me habia ocurrido
for($indice=0; $indice == 157000; $indice++){}, pero no se como preguntar si ese archico existe :p.

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #10 (permalink)  
Antiguo 29/12/2005, 06:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Fijate que el problema que tienes no se puede resolver con un "for" (bucle) .. ese dato debes almacenarlo en algún sitio y de ahí leerlo para incrementarlo cada vez que tus actuales rutinas generen un archivo.

Create un archivo.

contador.txt con un sólo valor inicial, en su primera línea (ojo con esto):
157000

Cada vez que generes un archivo .. vas a leer ese archivo .. toma ese dato y lo incrementas. Ese numero generado (el que tenía +1) será que el que usaras junto con la fecha para darle nombre al archivo.

Código PHP:
<?
$contador
=file('contador.txt');
$conteo=$contador[0];
?>
Por seguridad con la función file_exists() verfica que el archivo (nombre generado) no exista .. y si no existe .. re-escribe ese archivo (fwrite()) con el dato nuevo del contador.

Un saludo,
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 19:38.