Hola, he dedicado 20 minutos a jugar con exec, este es un ejemplo de un cuadro de texto capaz de editar y leer un archivo.
Código:
<?
if($_POST["texto"]){
$com = "echo ".$_POST['texto']." > texto.txt";
exec ($com);
}
$com = "cat texto.txt";
exec($com, $out, $result);
?>
<html>
<head>
<title>Leyendo Fichero<title>
</head>
<body>
<form name=texto action="<?= $_SERVER['PHP_SELF'] ?>" method=POST>
Texto<br>
<textarea name=texto><?= $out[0]; ?></textarea><br>
<input type=submit value="MODIFICA">
</form>
</body>
</html>
Te comento los inconvenientes:
º Debe existir junto con el archivo php un archivo llamado texto.txt, además debe tener permisos de escritura válidos.
ºCon saltos de línea se elimina todo el texto
ºUtilicé out[0] cuando debí esperar más datos por el array out
ºEs una vulnerabilidad muy grande, alguien podría aprovecharse. por ejemplo, en el cuadro de texto alguien podría escribir && ls y empezaría a listar documentos, alguien experimentado podría empezar a escalar con tan simple desperfecto. Pero bueno, me imagino es educacional así que puede servirte el ejemplo para que comiences a hacer algo más vistoso.
Saludos.