前提・実現したいこと
PHPの勉強で、簡単な掲示板を作ろうとしています。
テキストエリアの文字をchatlog.txtに保存して、このファイルの中の文字を出力させ、文字を表示させたいのですが、arrayができてしまう。
発生している問題・エラーメッセージ
該当のソースコード
chat.phpファイル
<?php //チャット内容を保存するテキスト $file = 'chatlog.txt'; //名前を入れる変数 $name = ""; //メッセージを入れる変数 $message = ""; if(isset($_POST['name'])){ $name = $_POST['name']; if($name == ""){ $name = "名無しさん"; } } if(isset($_POST['message'])){ $message = $_POST['message']; // メッセージがあればテキストファイルに書き込む //fopen=ファイルを開く、"a"=モード、追加して記入する //exit=内容を出力し、閉じる $fp = fopen($file, "a") or exit($file . "が開けません"); // | を区切りに名前とメッセージを繋げて保存 //fwrit=テキストファイルに書き込む関数 date_default_timezone_set('Asia/Tokyo'); fwrite($fp, date("Y/m/d H:i:s"). "|" . $name . "|" . $message . "\n"); } //テキストファイルの中身を吐き出す //file関数=テキストファイル内のテキストを1行ずつ配列($lines)に入れる $lines = file($file); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>チャット</title> </head> <body> <h1>チャット</h1> <p>投稿するメッセージを入力してください</p> <form action="chat.php" method="post"> 名前 :<input type="text" name="name" size="20"><br> <span>コメント:</span> <textarea name="message" cols="30" rows="5" maxlength="150" placeholder="コメント"></textarea> <input type="submit" name="submit" value="投稿"> </form> <section> <br><br><br> <?php //countで配列(テキスト)の数を出す $linesNum = count($lines);for($i=0 ; $i<$linesNum ; $i++){
//1行のメッセージを"|"を区切りに前後に分けて$onemessageに入れる
$onemessage = explode("|",$lines[$i]);
//$onemessageのキー値が0を$nameへ入れる
$time = $onemessage[0];
//$onemessageのキー値が1を$messageへ入れる
$name = $onemessage;
//$onemessageのキー値が2を$timeへ入れる
$message = $onemessage;
echo "投稿日時『".$time."』 投稿者『".$name."』 内容『".$message."』";
echo '<br><hr>';
}
?>
</section> </body> </html>回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/13 01:44