我有一个表单,我将给定的输入保存到文本文件中,
但我无法从保存的文件中读取:
while(!feof($fileNotizen)) {
$rawLine = fgets($fileNotizen);
if($rawLine==false) {
echo "An error occured while reading the file";
}
$rawLine
似乎总是假的,即使我之前使用过这个函数,也要填充文本文件:
function addToTable($notizFile) {
fwrite($notizFile, $_POST["vorname"]." ".$_POST["nachname"]."#");
$date = date(DATE_RFC850);
fwrite($notizFile, $date."#");
fwrite($notizFile, $_POST["notiz"].PHP_EOL);
}
在我提交表单并获取错误消息后,如果我检查文本文件,一切都在那里,所以该功能正常工作。
如果它有价值,我用这个命令打开文件:
$fileNotizen = fopen("notizen.txt", "a+");
问题可能是指针已经在文件的末尾,因此返回false?
答案 0 :(得分:2)
$fileNotizen = fopen("notizen.txt", "a+");
a+
打开以进行读/写,但将文件指针置于末尾。因此,您必须先fseek()开头或查看fopen() flags并根据您的需求明智地选择。
使用fseek($fileNotizen, 0, SEEK_SET);
来回放文件。
答案 1 :(得分:0)
要读取/获取文件内容,请尝试以下函数:
function read_file($file_name) {
if (is_readable($file_name)) {
$handle = fopen($file_name, "r");
while (!feof($handle)) {
$content .= fgets($handle);
}
return !empty($content) ? $content : "Empty file..";
} else {
return "This file is not readable.";
}
}
如果您想查看单独行显示的文件内容,请使用<pre></pre>
标记,如下所示:
echo "<pre>" . read_file("notizen.txt") . "</pre>";
如果你想在文件中写/添加内容,那么试试这个函数:
function write_file($file_name, $content) {
if (file_exists($file_name) && is_writable($file_name)) {
$handle = fopen($file_name, "a");
fwrite($handle, $content . "\n");
fclose($handle);
}
}
你可以像这样使用它:
$content = "{$_POST["vorname"]} {$_POST["nachname"]}#" . date(DATE_RFC850) . "#{$_POST["notiz"]}";
write_file("notizen.txt", $content);