Foros del Web » Programando para Internet » PHP »

lectura de ficheros

Estas en el tema de lectura de ficheros en el foro de PHP en Foros del Web. Estoy guardando texto en un fichero y cuando quiero leerlo, me sale todo el texto seguido (en el fichero hay espacios entre lineas). Utilizo la ...
  #1 (permalink)  
Antiguo 28/09/2005, 11:13
Avatar de abe_k  
Fecha de Ingreso: diciembre-2004
Mensajes: 286
Antigüedad: 13 años
Puntos: 2
lectura de ficheros

Estoy guardando texto en un fichero y cuando quiero leerlo, me sale todo el texto seguido (en el fichero hay espacios entre lineas). Utilizo la funcion fread. Alguien sabe de alguna funcion que me conservara los espacios? gracias
__________________
abe_k

Si quieres visitar Andorra, consulta la guia de este pequeño pais y conseguiras toda la información que necesites. La guia del visitante en Andorra
  #2 (permalink)  
Antiguo 28/09/2005, 12:30
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
En principio el texto se guarda tal cual ya que los espacios también son caracteres... podrías poner el código que usas?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #3 (permalink)  
Antiguo 28/09/2005, 17:17
 
Fecha de Ingreso: octubre-2004
Mensajes: 751
Antigüedad: 13 años, 2 meses
Puntos: 4
Puedes probar a usar la función nl2br();

www.php.net/nl2br

A ver si te sirve.

Saludos,
__________________
sergiold
  #4 (permalink)  
Antiguo 28/09/2005, 18:24
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Hay 2 ó 3 FAQ que hablan del tema...

UN salto de línea textual no es lo mismo que un salto de línea en HTML; para el segundo se necesita indicar con la etiqueta <br> mientras que el primero es identificado con el carácter no visible '\n'.

La función que hace el cambio es la que indica sergiold pero se plantean otros métodos en las FAQ (por si les intereza).
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 29/09/2005, 03:36
Avatar de abe_k  
Fecha de Ingreso: diciembre-2004
Mensajes: 286
Antigüedad: 13 años
Puntos: 2
holas, mi texto no es html, es un txt puro y duro.
El fichero queda bien guardado (con los saltos de linea y todo), pero al leer, utilizo fread, queda todo junto

gracias por responder
__________________
abe_k

Si quieres visitar Andorra, consulta la guia de este pequeño pais y conseguiras toda la información que necesites. La guia del visitante en Andorra
  #6 (permalink)  
Antiguo 29/09/2005, 05:04
 
Fecha de Ingreso: julio-2005
Mensajes: 38
Antigüedad: 12 años, 4 meses
Puntos: 0
Buenos días abe_k

Es obligatorio que utilices fread¿?

Yo te recomiendo que utilices file

<?
$archivo="Prueba.txt";
$contenido = file($archivo);
for($i=0;$i<count($contenido);$i++)
echo $contenido[$i]."<br>";
?>

o también puedes utilizar fgets

<?
$archivo="Prueba.txt";
$punt = fopen ($archivo, "r");
while (!feof($punt))
{
$linea = fgets($punt,filesize ($archivo));
echo $linea."<br>";
}
fclose ($punt);
?>

Espero que te sirva

Saludos
  #7 (permalink)  
Antiguo 29/09/2005, 05:12
 
Fecha de Ingreso: julio-2005
Mensajes: 38
Antigüedad: 12 años, 4 meses
Puntos: 0
Aun así, si deseas utilizar fread

Como bien has podido leer por el comentario de jam1138.

No es lo mismo <br> que \n. En el fichero se guarda en cada salto de linea un \n aunque tu no lo veas.

Cuando intentas leer y mostrar, HTML no interpreta un \n como un salto de linea por lo que te lo muestra todo seguido.

Para solucionarlo, podrías hacer esto:

<?
$archivo="Prueba.txt";
$punt = fopen ($archivo, "r");
$contenido = fread ($punt, filesize ($archivo));
$contenido=str_replace("\n","<br>",$contenido); //Con esto se soluciona el problemillla
echo $contenido;
fclose ($punt);
?>

Un saludo. Espero haberte ayudado
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 09:41.