Tendremos que tener un fichero que contenga el contenido a editar, en este caso archivo.txt, que se encuentra en el mismo directorio que el archivo .php que pongo a continuación. Si lo poneis en otro directorio tendréis que escribir la ruta hacia el archivo.
Creo un archivo donde incluyo el código PHP, seguido va el código HTML que contiene un textarea que muestra el contenido del archivo para poder editarlo.
<?php
if(isset($_POST['boton'])){
// si magic quotes esta activo con stripslashes quitamos los caracteres
//de escape que aparecen
if (get_magic_quotes_gpc()){$texto = stripslashes($_POST['texto']);}
// intentamos abrir el archivo
// la w: abre el archivo para escritura desde el inicio del archivo,
//si este existe borra su contenido sino lo intenta crear
@ $fp = fopen("archivo.txt", 'w');
if(!$fp){
echo '<p style="color: #ff0000">
<strong>No se pudo abrir el archivo
</strong>
</p>';
exit;
}
// para escribir en el archivo,
//strlen($texto) nos da la longitud de la cadena del archivo
fwrite($fp, $texto, strlen($texto));
fclose($fp);
}
// para leer el contenido del archivo
$archivo = file_get_contents("archivo.txt");
?>
… va seguido …
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>.: EDIT FILE :.</title>
</head>
<body>
<div id="contenido">
<strong>Archivo</strong>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<textarea cols="80" rows="40" name="texto">
<?php echo $archivo;?>
</textarea>
<br />
<input type="submit" name="boton" value="Guardar">
</form>
</div>
</body>
</html>
Hasta aquí es todo el código necesario para hacer lo que queremos, leer y editar el archivo.
La función fopen se utiliza para abrir el archivo, se le pueden pasar cuatro parámetros pero normalmente se usan sólo dos, la ruta hacia el archivo (en este caso el nombre del archivo ya que esta en el mismo directorio) y el otro dice que hacer con el archivo (en este caso w).
Las opciones más comunes son:
* r Lectura, empezando desde el inicio del archivo.
* r+ Lectura y escritura empezando desde el inicio del archivo.
* w Escritura empezando desde el inicio. Si el archivo existe borra su contenido, sino lo crea.
* w+ Lectura y escritura empezando desde el inicio. Si el archivo existe borra su contenido, sino lo crea.
* x Escritura empezando desde el inicio. Si existe no se abre y se genera una advertencia.
* x + Lectura y escritura empezando desde el inicio. Si existe no se abre y se genera una advertencia.
* a Adjunción ,escritura desde el final del archivo. Si no existe lo crea.
* a+ Adjunción ,escritura y lectura desde el final del archivo. Si no existe lo crea.
* b Binario, se usa en combinación con los otros, se usa para los sistemas que distinguen entre archivos binarios y los de texto (pe, windows).
* t En combinación con los otros, unicamente para windows. Nose recomienda su uso, primero hay que adaptar el código para que funcione con la opción b.