0

我有一个表单,可以将给定的输入保存到一个文本文件中,
但是我无法从保存的文件中读取:

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?

4

2 回答 2

2
$fileNotizen = fopen("notizen.txt", "a+");

a+打开以进行读/写,但将文件指针放在末尾。因此,您必须先从fseek ()开始或查看fopen () 标志并根据您的需要更明智地选择。

用于fseek($fileNotizen, 0, SEEK_SET);倒带文件。

于 2013-07-08T19:49:00.740 回答
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);
于 2013-08-31T01:40:41.600 回答