Foros del Web » Programando para Internet » PHP »

problema con fwrite (intros)

Estas en el tema de problema con fwrite (intros) en el foro de PHP en Foros del Web. hola. estoy empezando con php y quería obtener un archivo archivo.txt con los números colocados de la siguiente manera: 0 1 2 3 Este es ...
  #1 (permalink)  
Antiguo 21/03/2009, 16:43
boli-sp
Invitado
 
Mensajes: n/a
Puntos:
problema con fwrite (intros)

hola.

estoy empezando con php y quería obtener un archivo archivo.txt con los números colocados de la siguiente manera:

0
1
2
3


Este es el código:

Código PHP:
$archivo=fopen("archivo.txt""w");

for(
$pos=0$pos<=3$pos++)
{
  
fwrite($archivo,$pos);
}

fclose($archivo); 
Con esto me los pone todos seguidos. He probado ponerle un "\n" pero aparecen caracteres estraños en el archivo.

gracias de antemanos
  #2 (permalink)  
Antiguo 21/03/2009, 17:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.712
Antigüedad: 15 años, 1 mes
Puntos: 836
Respuesta: problema con fwrite (intros)

Normalmente debería funcionar con \n, ¿en qué sistema operativo trabajas?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 21/03/2009, 17:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 14 años
Puntos: 2135
Respuesta: problema con fwrite (intros)

Es mejor si haces algo así:
Código php:
Ver original
  1. $archivo=fopen("archivo.txt", "w");
  2.  
  3. for($pos=0; $pos<=3; $pos++)
  4. {
  5.   fwrite($archivo,$pos . PHP_EOL);
  6. }
  7.  
  8. fclose($archivo);

Saludos.
  #4 (permalink)  
Antiguo 22/03/2009, 09:48
boli-sp
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con fwrite (intros)

gracias, pero para lo que quiero hacer yo no me funciona. os pongo un poco más de código y os explico:

Código PHP:
$voto=2//hay tres opciones, cogemos la 2, por ejemplo (el valor se coge de un formulario con $_POST)

$pos=1//posicion del array donde empezamos

//abrimos el archivo y leemos los tres números que hay
$archivo=fopen("archivo.txt""r");
$contenido[$pos]=fgets($archivo10);
while (!
feof($archivo)) 
  {
  
$pos++;
  
$contenido[$pos]=fgets($archivo10);
  }
fclose($archivo);


$tam=$pos//almacenamos el numero de opciones para votar o tamaño del array(en este caso 3)
$total=0//total de votos

for($pos=1$pos<=$tam$pos++)
  
$total+=$contenido[$pos];
  
//sumamos un voto a la posicion que hemos elegido y al total
$contenido[$voto]++;
$total++;


//escribimos el archivo de nuevo con el voto a mayores
$archivo=fopen("archivo.txt""w");

for(
$pos=1$pos<=$tam$pos++)
  
fwrite($archivo,$contenido[$pos]);

//mostramos los porcentajes de los votos
for($pos=1$pos<=$tam$pos++)

  
$porcentaje=($contenido[$pos]*100)/$total;
  
$porcentaje=round($porcentaje);
  echo 
"$porcentaje %<br>";
}

fclose($archivo); 
este código lo que debería hacer es ler un archivo archivo.txt dónde hay guardados tres números de esta manera:
0
0
0


en este caso del código, el archivo, después de la ejecución debería quedar así:
0
1
0


y mostrar por pantalla:
0%
100%
0%

donde falla es al guardar los números. por cierto, el SO es windows. espero una ayuda y gracias a los que ya contestaron.
  #5 (permalink)  
Antiguo 22/03/2009, 14:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 14 años
Puntos: 2135
Respuesta: problema con fwrite (intros)

Pues no veo en donde guardas la nueva linea, como te habia comentado lo mejor es usar PHP_EOL ya que esta contiene \n, \r\n, o \r dependiendo del SO bajo el que se ejecute.

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 13:14.