Php 逐条记录读取序列化文件
我从表单保存到文件数据:Php 逐条记录读取序列化文件,php,Php,我从表单保存到文件数据: $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"
$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);
但此代码只读取最后一条记录。如何读取所有文件 替换
文件内容(“db.txt”,序列化($data))代码>到
file_put_contents("db.txt", PHP_EOL .serialize($data), FILE_APPEND);
文件内容(“db.txt”,序列化($data));//将一次又一次地重写该文件。所以你不能读取所有的数据。FILE\u APPEND有助于附加数据,PHP\u 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”就不能工作 你所说的一条记录一条记录是什么意思?你确定有不止一条记录
?我的错误,我只是看到代码总是覆盖文件。。。