PHPを勉強中、ファイル操作について分からないことがあったのでお聞きしたいです。
define(FILE_NAME, './challenge_log.txt'); $log = ''; date_default_timezone_set('Asia/Tokyo'); if($_SERVER['REQUEST_METHOD'] === 'POST'){ $log = date("m月d日 H:i:s") . "\t" . $_POST['comment'] . "\n"; if(($fp = fopen(FILE_NAME,'a')) !== FALSE){ if(fwrite($fp,$log) === FALSE){ echo 'ファイル書き込み失敗' . FILE_NAME; } fclose($fp); } } $data = array(); if(is_readable(FILE_NAME) === TRUE){ if(($fp = fopen(FILE_NAME,'r')) !== FALSE){ while(($tmp = fgets($fp)) !== FALSE){ $data[] = htmlspecialchars($tmp, ENT_QUOTES, 'UTF-8'); } fclose($fp); } }else{ $data[] = 'ファイルがありません'; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form method="post"> <p>発言:<input type="text" name="comment"> <input type="submit" value="送信"> </p> </form> <?php foreach($data as $value){?> <p><?php echo $value . "\n"; ?></p> <?php } ?> </body> </html>
上記のコードでのことなんですが、fwrite関数でchallenge_log.txtに書き込んだファイルをfgets関数で読み込んで、それを$dataに一行ずつ連想配列で入れ込んでいるという流れになっているかと思います。fgets関数に関しては一行ずつ読み込む決まりがあると思うのですが、fwrite関数に関してもそのような決まりがあるのでしょうか?challenge_log.txtには自動的に改行されて書き込まれていたのですが、fwrite関数に関して色々調べたんですが、そのような記載はなかったもので...
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/08 02:39
2017/07/08 07:36
2017/07/08 09:26