もともと何行か書き込みのあるCSVに新たに1行追加したい時の記入方法で、
CSVには書き込みはされるものの、最後の行の後ろに追加されてしまう状態になっております。
csv
11,Mike,Mike@gmail.com,hello 22,John,John@gmail.com,hello 33,Peter,Peter@gmail.com,hello 44,Sam,Sam@gmail.com,hello
新たに5,Will,Will@gmail.com,helloを追加しようとすると
csv
11,Mike,Mike@gmail.com,hello 22,John,John@gmail.com,hello 33,Peter,Peter@gmail.com,hello 44,Sam,Sam@gmail.com,hello5,Will,Will@gmail.com,hello
となってしまいます。
この書き込みをしているコードは下記になります。
PHP
1<?php 2 session_start(); 3 $name = $_SESSION['name']; 4 $email = $_SESSION['email']; 5 $filename = 'Board.csv'; 6 7 if($_SERVER['REQUEST_METHOD'] === 'POST'){ 8 $comment = $_POST['comment']; 9 $last_id = $_POST['last_id']; 10 $new_id = $last_id + 1; 11 $data = array( array($new_id, $name, $email, $comment)); 12 if (($fp = fopen($filename, 'a')) !== FALSE) { 13 foreach($data as $value){ 14 $line = implode(',', $value); 15 fwrite($fp, $line); 16 } 17 fclose($fp); 18 } 19 } 20 header('Location: ./show.php');
show.phpでcsvの中身をphp上で表示させています。
どのように対処すれば1行ごと綺麗に書き込みができますでしょうか?
お手数おかけしますが、よろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。