Я сохраняю данные файла из формы:
$name = $_POST['name'];
$url = $_POST['url'];
$comm = $_POST['comm'];
$data["name"]=$name;
$data["url"]=$url;
$data["comm"]=$comm;
file_put_contents("db.txt", serialize($data));
Теперь я хотел бы прочитать запись этого файла по записи.
$file_handle = fopen("db.txt", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
$arr = unserialize($line);
var_dump($arr);
}
fclose($file_handle);
Но этот код читал только последнюю запись. Как читать весь файл?
Замените file_put_contents("db.txt", serialize($data));
в
file_put_contents("db.txt", PHP_EOL .serialize($data), FILE_APPEND);
file_put_contents ("db.txt", serialize ($ data));//будет писать файл снова и снова. поэтому вы не можете читать все данные. FILE_APPEND помогает добавлять данные, а PHP_EOL помогает выйти из строя.
Привет, я пробую этот код для вашего решения:
<?php
$name = "rdn";
$url = "http://google.it";
$comm = "com";
$data["name"]=$name;
$data["url"]=$url;
$data["comm"]=$comm;
file_put_contents("db.txt", serialize($data)."\n",FILE_APPEND);
$fh = fopen('db.txt','r');
while ($line = fgets($fh)) {
// <... Do your work with the line ...>
var_dump(unserialize($line));
}
fclose($fh);
?>
без "\n" не работают!
record by record
? Вы уверены, что существует более однойrecord
?