0

指定された入力をテキストファイルに保存するフォームがあり
ますが、保存されたファイルからの読み取りに問題があります。

while(!feof($fileNotizen)) {
$rawLine = fgets($fileNotizen);
if($rawLine==false) {
  echo "An error occured while reading the file"; 
}


$rawLine以前にこの関数を使用してテキストファイルを埋めたとしても、常にfalseのようです:

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

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 に答える