Foros del Web » Programando para Internet » PHP »

guardar en un arreglo variables

Estas en el tema de guardar en un arreglo variables en el foro de PHP en Foros del Web. estoy tratando de crear este script que guarda en un arreglo monbre|mi comentario|05 de julio de 2007| pero en el textarea cuando presiono enter y ...
  #1 (permalink)  
Antiguo 08/07/2007, 11:25
 
Fecha de Ingreso: julio-2007
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Exclamación guardar en un arreglo variables

estoy tratando de crear este script
que guarda en un arreglo

monbre|mi comentario|05 de julio de 2007|

pero en el textarea cuando presiono enter y escribo otra linea
en el archivo la variable se guarda mal

quisiera saber si se puede hacer que el enter no troce el comentario sino que lo escriba asi.

nombre|linea 1<BR>linea 2<BR>linea3<BR>linea 4|08 de julio de 2007|

me podrian ayudar. gracias
abajo pongo el codigo:
--------------------------------------------
<form action="add.php" method="post">
<p>
<textarea rows="3" cols="40" name="comentario1">Tu Comentario:</textarea></p>
<p>Tu nombre: <input type="text" name="nombre" size=40 value="Tu nombre"></p>
<p><input type="submit" value="agrega tu comentario">   <input type="reset" value="limpiar"></p>
</form>


<?php

$archivo = file("arreglo.txt");
/* file lee el archivo y guarda el contenido en un arreglo, donde cada elemento del arreglo corresponde a una línea del archivo */

if (!$archivo) /* si no se puede abrir el archivo */
{
echo "<p>No se pudo abrir el archivo.</p>";
}

$filas=count($archivo);
/* la funcion count cuenta el número de elementos de un arreglo y lo guarda en la variable $filas. Esta varible nos servirá como variable de control para recorrer el arreglo $archivo */

for($i=0;$i<$filas;$i++)
{
$campo=explode("|",$archivo[$i]);
/* la funcion explode divide una cadena en base a un caracter elegido, en este caso | y lo guarda en el arreglo $campo
luego se va obteniendo cada campo equivalente a los elementos del arreglo */
$nombre = $campo[0];
$comentario = $campo[1];
$fecha = $campo[2];

/* finalmente se imprimen por pantalla los datos */
echo "\n<p>$comentario";
echo "<font color='B500C2'>$nombre</font><br>";
echo "<br><font color='FF0000'>$fecha</font></p><br>";
}

?>

-----------------------------------------------------------------
add.php

<?
$comentario=$_POST['comentario1'] ;
$nombr=$_POST['nombre'];



/* COMILLAS Y OTROS */
/* se reemplazan las comillas y otros simbolos mediante la función eregi_replace que busca una cadena en otra, y l reemplaza por una tercera (ver Manejo de cadenas de Texto) */
$coment=eregi_replace('\\\"',""",$comentario);
$coment2=eregi_replace("\\\'","'",$coment);
$coment3=eregi_replace("<","<",$coment2);
$coment4=eregi_replace(">",">",$coment3);
/* reemplazo los saltos de carro por la etiqueta <br>, de lo contario al ingresar los datos en el archivo, se me generan saltos de carfro que provocan errores al leer el archivo */
$coment5=eregi_replace("<br>","<br>",$coment4);



$comentfinal=$coment5;




?>

<?php
/* con esta funcion se formatea la fecha al castellano */
function calcula_fecha()
{
/* consultar la funcion date en www.php.net/manual/es/ */
$dia = date ("d"); /* obtiene el número del día del mes */
$me = date ("m"); /* obtiene el número del mes */
$agno = date ("Y"); /* obtiene el año con 4 cifras */
$mes=""; /* se inicia la variable $mes vacía */
/* mediante una serie de if se obtiene el mes en castellano, la funcion date puede obtener el nombre del mes, pero lo hace en inglés */
if($me=="01") $mes="enero";
if($me=="02") $mes="febrero";
if($me=="03") $mes="marzo";
if($me=="04") $mes="abril";
if($me=="05") $mes="mayo";
if($me=="06") $mes="junio";
if($me=="07") $mes="julio";
if($me=="08") $mes="agosto";
if($me=="09") $mes="septiembre";
if($me=="10") $mes="octubre";
if($me=="11") $mes="noviembre";
if($me=="12") $mes="diciembre";
/* se arma la cadena con la fecha */
$cadena = "$dia de ";
$cadena .= "$mes de ";
$cadena .= "$agno";
return $cadena; /* se devuelve la cadena con la fecha */
}

$fecha = calcula_fecha(); /* se guarda en el valor de la funcion calcula_fecha() en la variable $fecha */
?>

<?php
$datos .= "$nombr|$comentfinal|$fecha|\n";
?>

<?php
/* se genera un puntero que apunta al archivo libro en modalidad de agregar al final "a" */
$archivo = fopen("arreglo.txt", "a");
if (!$archivo) /* si no se puede abrir el archivo reclama */
{
echo "<center><h2>No se pudieron agregar los datos</h2></center>";
exit;
}
/* Se escriben los datos */
fputs($archivo, $datos); /* fputs, escribe una cadena en el puntero indicado ($archivo) */
fclose($archivo); /* se cierra el archivo */
?>
----------------------------------------------------------------
  #2 (permalink)  
Antiguo 08/07/2007, 11:28
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 18 años, 10 meses
Puntos: 23
Re: guardar en un arreglo variables

Utiliza la función nl2br() para hacer eso que quieres..
Más info, php.net ;)
Saludos
  #3 (permalink)  
Antiguo 13/07/2007, 16:05
 
Fecha de Ingreso: julio-2007
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: guardar en un arreglo variables

es que creo que no me di a entender lo que yo quiero es escribir en el archivo de texto el contenido del texarea pero sin que tenga renornos de carro el archivo.
quiero que sea una sola linea en el archivo pero en salida html que salga taly como se escribio en el textarea

ejemplo:

en textarea

Código HTML:
escribo 1era lina y doy enter
escribo la segunda y doy enter
escribo tercera y enter
y se guarda en la variable $comentario
despues la escribo en un archivo txt

asi:
escribo 1era lina y doy entere -scribo la segunda y doy enter - escribo tercera y enter

despues:

otro archivo lo lee:
y que salga como se escribio en el texara

con sus retornos de carro .


escribo 1era lina y doy enter
escribo la segunda y doy enter
escribo tercera y enter
  #4 (permalink)  
Antiguo 13/07/2007, 16:34
 
Fecha de Ingreso: mayo-2006
Mensajes: 288
Antigüedad: 17 años, 10 meses
Puntos: 4
Re: guardar en un arreglo variables

ummm ya te entendi
yo tube ese problemaa.
el caso es que cuando tu guardas el contenido de un <textarea> se incluiran los saltos del enter como "\n" es decir los saltos sobre tu base de datos en text.
um..? yo tube eseproblema antes pero lo mejor seria usar una base de datos en MySQL ya que esas base de datos le dan la denominacion automatica ala tabla.

Tambien podrias usar str_replace("\\n","",$archivo[$i]); aunque vale resaltar que ami no me funciono.
  #5 (permalink)  
Antiguo 14/07/2007, 10:05
 
Fecha de Ingreso: julio-2007
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: guardar en un arreglo variables

Cita:
Iniciado por netserver Ver Mensaje
ummm ya te entendi
yo tube ese problemaa.
el caso es que cuando tu guardas el contenido de un <textarea> se incluiran los saltos del enter como "\n" es decir los saltos sobre tu base de datos en text.
um..? yo tube eseproblema antes pero lo mejor seria usar una base de datos en MySQL ya que esas base de datos le dan la denominacion automatica ala tabla.

Tambien podrias usar str_replace("\\n","",$archivo[$i]); aunque vale resaltar que ami no me funciono.
-----------------

lo voy a intentar gracias.
  #6 (permalink)  
Antiguo 20/07/2007, 20:05
 
Fecha de Ingreso: julio-2007
Mensajes: 10
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: guardar en un arreglo variables

ya lo consegui con la sig linea de codigo
Cita:
$comentas=eregi_replace("\n","<br>",$coment4);
gracias si era \n y ya lo remplaza por <br>
gracias.

era muy simple verdad.

Última edición por garfield3286; 20/07/2007 a las 20:07 Razón: se me olvido acompletar
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 23:01.