Je fais ce programme et j'essaie de trouver comment écrire des données au début d'un fichier plutôt qu'à la fin. "a"/append écrit seulement à la fin, comment puis-je le faire écrire au début? Parce que "r +" le fait mais écrase les données précédentes.Besoin d'écrire au début du fichier avec PHP
$datab = fopen('database.txt', "r+");
Voici mon fichier entier:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Facebook v0.1</title>
<style type="text/css">
#bod{
margin:0 auto;
width:800px;
border:solid 2px black;
}
</style>
</head>
<body>
<div id="bod">
<?php
$fname = $_REQUEST['fname'];
$lname = $_REQUEST['lname'];
$comment = $_REQUEST['comment'];
$datab = $_REQUEST['datab'];
$gfile = $_REQUEST['gfile'];
print <<<form
<table border="2" style="margin:0 auto;">
<td>
<form method="post" action="">
First Name :
<input type ="text"
name="fname"
value="">
<br>
Last Name :
<input type ="text"
name="lname"
value="">
<br>
Comment :
<input type ="text"
name="comment"
value="">
<br>
<input type ="submit" value="Submit">
</form>
</td>
</table>
form;
if((!empty($fname)) && (!empty($lname)) && (!empty($comment))){
$form = <<<come
<table border='2' width='300px' style="margin:0 auto;">
<tr>
<td>
<span style="color:blue; font-weight:bold;">
$fname $lname :
</span>
$comment
</td>
</tr>
</table>
come;
$datab = fopen('database.txt', "r+");
fputs($datab, $form);
fclose($datab);
}else if((empty($fname)) && (empty($lname)) && (empty($comment))){
print" please input data";
} // end table
$datab = fopen('database.txt', "r");
while (!feof($datab)){
$gfile = fgets($datab);
print "$gfile";
}// end of while
?>
</div>
</body>
</html>
Je pense qu'il n'y a pas de meilleure façon d'insérer des données au début de le fichier. De toute façon, vous devez déplacer toutes les données contenues dans le fichier. Pour les fichiers plus volumineux, vous devrez peut-être lire le fichier pièce par pièce pour l'insérer dans la mémoire. –
Comment utiliser le mode "c" de fopen? Cela n'écrit-il pas au début du fichier? –
@SSHThis oui c'est le cas, mais il réécrit aussi quelque chose sur le chemin :) –