Foros del Web » Programando para Internet » PHP »

[php]Problema al guardar datos en un fichero txt

Estas en el tema de [php]Problema al guardar datos en un fichero txt en el foro de PHP en Foros del Web. Saludos, os comento: Estoy desarrollando una pagina de alta de noticias, las cuales se guardan en un archivo txt de la siguiente manera: Código: // ...
  #1 (permalink)  
Antiguo 02/06/2008, 10:42
 
Fecha de Ingreso: octubre-2006
Mensajes: 8
Antigüedad: 18 años, 1 mes
Puntos: 0
[php]Problema al guardar datos en un fichero txt

Saludos, os comento:
Estoy desarrollando una pagina de alta de noticias, las cuales se guardan en un archivo txt de la siguiente manera:

Código:
// Asegura si el archivo existe y se puede escribir en el
if (is_writable($nombreArchivo)) {
//coloca el puntero al inicio del documento
 if (!$gestor = fopen($nombreArchivo, 'r')) 
{
echo "No se puede abrir el archivo ($nombreArchivo)";
exit;
}
			
//lee el documento y lo guarda en la variable $a
$a = @fread($gestor, filesize($nombreArchivo));
fclose($gestor);
			
//situa el cursor al inicio del documento truncandolo a 0 caracteres
if (!$gestor = fopen($nombreArchivo, 'w+')) 
{
echo "No se puede abrir el archivo ($nombreArchivo)";
exit;
}
		
//recoge los datos ingresados en el formulario y le agrega $a(noticias antiguas) al final de la pagina		
if (fwrite($gestor, $noticia . $a) === FALSE) 
{
echo "No se puede escribir al archivo ($nombreArchivo)";
exit;
}
	
$visualizar = "Su noticia se a generado con &eacute;xito, se escribi&oacute;:"."</p>"."$noticia"."$a";
fclose($gestor);
}
La noticia se guarda en el archivo txt de la siguiente manera:

Código:
$noticiaMod='
<tr>
    <td width="70%">
	<!--titular--><H3>'.$tituloMod.'</H3>
	</td>
    <td width="30%">
	<!--fecha--><H4>'.$fechaMod.'</H4>
	</td>
  </tr>
  <tr>
    <td colspan="2" width="100%">
	<!--contenido--><P>'.$contenidoMod.'</P>
	</td>
  </tr>
  <tr>
    <td colspan="2" width="100%"><hr/></td>
  </tr>
  <!--Fin noticia-->';
Asi que quedaria un txt con codigo html, que posteriormente se agrega a la pagina con una funcion include.

A continuación meto cada noticia en un combox que servira para elegirla y modificarla, solamente se muestran los titulos, que seleccionandolos, nos carga cada noticia en el formulario de alta.

Hay esta el PROBLEMA, ahora tengo que lleer el txt hasta llegar al inicio de la noticia seleccionada en el combox que es la que quiero modificar,grabar ese primer trozo dentro de una variable, despues la noticia a modificar, y al final el resto de codigo que se encuentra en el txt en fin escojer la noticia a modificar,extraerla del txt y despues grabarla en el mismo sitio con las modificaciones que se hayan creado.

Gracias de antemano espero que me puedan ayudar. SI ALGO NO LES QUEDA CLARO NO DUDEN EN PREGUNTAR.
  #2 (permalink)  
Antiguo 02/06/2008, 11:41
 
Fecha de Ingreso: mayo-2007
Mensajes: 39
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: [php]Problema al guardar datos en un fichero txt

Te recomiendo que uses bases de datos en vez de archivos de texto, te sera mucho mas facil manejar tus datos
  #3 (permalink)  
Antiguo 02/06/2008, 19:31
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 7 meses
Puntos: 33
Respuesta: [php]Problema al guardar datos en un fichero txt

madeogner:
Trabajando con archivos de texto y php, te ayudaria mucho la funcion file().
Es decir que en la primera linea del archivo, podria meter el titulo, en la segunda linea la fecha y en la tercera el cuerpo de la noticia.
Ejemplo si la noticia es:
-Alimentos
-02/06/2008
- Los precios de los alimentos,
han subido vertiginosamente
durante este año.
Y se encuentra en el archivo: noticias.txt
$abrir = file("noticias.txt");
Entonces en:
$lineas = count($abrir); //Esto dara 0,1,2,3y4
El archivo tambien lo puedes abrir con
fopen en modalidad a y meterle un array de un nuevo archivo de noticias.
tambien puedes buscar titulos de noticias, extraer y modificar lineas.
Saludos
Y espro te ayude
Franco
P.S. No hay duda que es un trabajo algo complicado pero posible.
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 12:54.