Tôi đang tạo chương trình này và tôi đang cố gắng tìm hiểu cách ghi dữ liệu vào đầu tệp thay vì kết thúc. "a"/nối thêm chỉ ghi vào cuối, làm thế nào tôi có thể ghi nó vào đầu? Bởi vì "r +" hiện nó nhưng ghi đè dữ liệu trước đó.Cần viết ở đầu tệp bằng PHP
$datab = fopen('database.txt', "r+");
Dưới đây là toàn bộ tập tin của tôi:
<!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>
Tôi nghĩ rằng không có cách nào tốt hơn để chèn dữ liệu vào đầu tập tin. Bạn phải di chuyển tất cả dữ liệu hiện có trong tệp. Đối với các tệp lớn hơn, bạn có thể cần phải đọc từng phần một phần để phù hợp với nó trong bộ nhớ. –
Làm thế nào về việc sử dụng chế độ "c" của fopen? Điều này không ghi vào đầu tập tin? –
@SSHThó có nó, nhưng nó cũng viết lại bất cứ điều gì trong cách :) –