PHPを勉強し始めたばかりの者です
①フォームで受け取った内容を別のテキストファイルに追記して保存
②テキストファイルの内容には"<>"という文字が入っているので、それを印に1行ごとにexplode関数を使って区切った文字列を取得
③echoでページ内のフォーム下に表示
というような流れのプログラムを作ろうとしています。
現時点では①まではうまくいっていてテキストファイルに記録が溜まっていきますが、②のところで詰まってしまいます。
PHP
1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>m3-02</title> 6 </head> 7 8 <body> 9 <form action="" method="post"> 10 名前<input type="text" name="name"><br> 11 コメント<input type="text" name="comment"><br> 12 <input type="submit" name="submit"> 13 </form> 14 15 <?php 16 $filename = "m3-02.txt"; 17 $post_date = date("Y/m/d H:i:s"); 18 19 if(file_exists($filename)){ 20 $post_number = count(file($filename)) + 1; 21 }else{ 22 $post_number = 1; 23 } 24 25 if(!empty($_POST["name"]) && !empty($_POST["comment"])){ 26 $name = $_POST["name"]; 27 $comment = $_POST["comment"]; 28 $str = $post_number."<>".$name."<>".$comment."<>".$post_date; 29 30 $fp = fopen($filename,"a"); 31 fwrite($fp,$str.PHP_EOL); 32 33 $ret_array = file($filename); 34 $datum = $ret_array; 35 foreach($datum as $data){ 36 $newdata = explode("<>",$data); 37 echo $newdata."<br>"; 38 } 39 40 fclose($fp); 41 echo "書き込み完了!<br>"; 42 } 43 ?> 44 </body> 45 46</html>
上記のコードを動かすと
Notice: Array to string conversion in /public_html/m3-02.php on line 37
との表示の後に
Array
が指定テキスト内の行数分続き、
書き込み完了!
と表示されます
お力を貸していただきたいです
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。