Foros del Web » Programando para Internet » PHP »

escribir en fichero

Estas en el tema de escribir en fichero en el foro de PHP en Foros del Web. Hola buenas. Mediante el siguiente codigo que voy a mostrar, he conseguido guardar en un fichero lo que el usuario mete en una caja de ...
  #1 (permalink)  
Antiguo 27/06/2006, 05:14
Avatar de txusta77  
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 17 años, 10 meses
Puntos: 0
escribir en fichero

Hola buenas. Mediante el siguiente codigo que voy a mostrar, he conseguido guardar en un fichero lo que el usuario mete en una caja de texto, ejemplo:
casacochejardin

como lo hago para que se vea así?

casa
coche
jardín

El codigo es el siguiente:

$nombre_fichero = "emails.txt";
$texto =$caja;

$mi_archivo = @fopen ($nombre_fichero, "a+") or die ("No se puede abrir
el fichero especificado");

//Escribir

@fwrite ($mi_archivo,$texto) or die ("No se puede escribir");
$msg = "Los datos se han grabado correctamente";
fclose($mi_archivo);
?>

Os he puesto lo de casacochejardin como ejemplo, pero en realidad serán direcciones de correo. Luego como podría hacer para mandar un email a todas las direcciones que salgan en ese fichero?

Muchas gracias!!
  #2 (permalink)  
Antiguo 27/06/2006, 05:21
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 1 mes
Puntos: 0
como estan separadas tus direcciones de correo?
  #3 (permalink)  
Antiguo 27/06/2006, 05:27
Avatar de txusta77  
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 17 años, 10 meses
Puntos: 0
La direccion de correo es la que el usuario introduce en la caja y directamente se me añade al fichero. Ahora mismo van todas seguidas, ejemplo:
[email protected]@[email protected]


Por eso quiero que primero se me añadan en columna y después, una vez así, poder hacer lo de mandar el fichero a todos.
  #4 (permalink)  
Antiguo 27/06/2006, 06:55
Avatar de chuscazo  
Fecha de Ingreso: abril-2004
Mensajes: 84
Antigüedad: 20 años
Puntos: 0
Supongo que el usuario no introducira las direcciones de mail todas seguidas, prueba a separar las direcciones con espacios o retornos de carro, de esa forma con explode() las podras separar. http://es2.php.net/manual/es/function.explode.php

Si no las separas tendras que hacer mucho mas trabajo de parseo del fichero, te hablo de utilizar funciones para cortar el string hasta la @ luego hasta el punto (suponiendo qeu el dominio solo tenga un punto) y luego la extension (que variar entre com, es, it, etc).

en mi opinion creo que lo mejor sera que las separes las direcciones en lineas del fichero y luego linea por linea mandas los mail o contruyes el TO: multiple.

Saludos
  #5 (permalink)  
Antiguo 27/06/2006, 08:30
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 1 mes
Puntos: 0
este codigo toma de un fichero, las direcciones estan separadas por retornos de carro(\n):
Cita:
<?
$archivo="ruta/archivo.txt";

//Datos del Mail
$remite="[email protected]";
$responder="[email protected]";

$remitente="Tu nombre";

$cabecera ="Date: ".date("l j F Y, G:i")."\n";
$cabecera .="MIME-Version: 1.0\n";
$cabecera .="From: ".$remitente."<".$remite.">\n";
$cabecera .="Return-path: ". $remite."\n";
$cabecera .="Reply-To: ".$responder."\n";
$cabecera .="X-Mailer: PHP/". phpversion()."\n";
$cabecera .="Content-Type: text/html; charset=\"ISO-8859-1\"\n";


$titulo="titulo del mail";

//Abre el archivo y lo guarda en una variable
$fp = fopen ($archivo ,"r");
$direcciones = fread($fp, filesize($archivo));
fclose($fp);

//Convierte la direcciones
$dir=explode("\n",$direcciones);
for($i=0;$i<=count($direcciones);$i++){

$dest=trim($dir[$i]);
if($dest!=""){
mail($dest, $titulo, $mensaje,$cabecera);
}
}




?>
  #6 (permalink)  
Antiguo 28/06/2006, 02:17
Avatar de txusta77  
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 17 años, 10 meses
Puntos: 0
Roly, lo que me has puesto tu parece estar genial, pero primero necesito que las direcciones se añadan al fichero con intros:

direccion1
direccion2
direccion3

Eso se hace con el explode?

parece que no me he explicado muy bien. Un usuario entra a mi página. Se encuentra un textbox. Mete su Direccion de correo y directamente se me añade al fichero. Después entra otro usuario, escribe el suyo y se me añade al fichero. Ahora se me estan añadiendo todos seguidos, sin ni siquiera un espacio y quiero que se añadan como ya he comentado arriba. Mi código es el siguiente:

<?

$nombre_fichero = "emails.txt";
$texto =$caja;

$mi_archivo = @fopen ($nombre_fichero, "a+") or die ("No se puede abrir
el fichero especificado");

//Escribir

@fwrite ($mi_archivo,$texto) or die ("No se puede escribir");
$msg = "Los datos se han grabado correctamente";
fclose($mi_archivo);
?>

La direccion de correo que introduce el usuario se guarda en la variable $texto, pues el textbox se llama "caja".

Me explico?

gracias!
  #7 (permalink)  
Antiguo 28/06/2006, 02:46
Avatar de chuscazo  
Fecha de Ingreso: abril-2004
Mensajes: 84
Antigüedad: 20 años
Puntos: 0
¿El usuario solo pone una direccion de correo? Si es asi es muy facil tienes que cambiar $texto =$caja; por $texto =$caja."\n"; Y asi te metera un retorno de carro.
Si el usuario te pones mas de una direccion de correo es mas dificil como te dije antes. Tienes que separarlas. puedes 'obligar' al usuario a que te separe las direcciones de correo con comas o espacios. Y asi si las puedes separar con el explode.

Saludos
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 05:35.