###前提・実現したいこと
PHPのかなりの初心者です。初心者でもわかるように答えていただけると幸いです。
現在、初心者レベルの掲示板作成に取り組んでいます。
実現したいこと)
作成した掲示板の投稿内容をテキストファイルに追記するコードを書いています。
そのファイルを例えば、'abc.txt'という名前にします。
このファイルには、追記されるごとに以下のような文字列が記述されるとします。
名前1,コメント1
名前2,コメント2
名前3,コメント3
・
・
・
ここで、私が実現したいことは、追記されていく各行をカウントし、
そのカウントを投稿番号としてabc.txtファイルの各行の先頭に埋め込みたいのです。
意味が伝わるとありがたいのですが、
簡潔に言うと、
掲示板の投稿内容とその投稿順の番号を、同一テキストファイルに1行で書き、投稿が増えるごとに番号も加算されてテキストファイルに書き込まれるようなコードを書きたいです。
皆様ならどうやるのか具体的なコードで教えていただきたいです。
初心者でも調べやすい、関数や記述で教えていただけると幸いです。
よろしくお願いいたします。
以下のようなコードを現在書いています。
追記自体はうまくいっており、あとは投稿番号を振れればと考えています。
###ソースコード
<?php $err_msg1 = ""; $err_msg2 = ""; $message = ""; $name = (isset($_POST["name"]) === true) ?$_POST["name"]: ""; $comment = (isset($_POST["comment"]) === true) ?trim($_POST["comment"]):""; $date = date("Y-m-d H:i:s"); $num = 0; if(isset($_POST["send"]) === true){ if($name === "") $err_msg1 = "名前を入力してください"; if($comment === "") $err_msg2 = "コメントを入力してください"; if($err_msg1 === "" && $err_msg2 === ""){ $file = "abc.txt"; $fp = fopen($file, "ab"); fwrite($fp, $num . '<>' . $_POST["name"] . '<>' . $_POST["comment"] . '<>' . $date. "\n"); fclose($fp); $message = "書き込みに成功しました"; } } $fp_r = fopen($file,"r"); $dataArr= array(); while( $res = fgets($fp_r)){ $tmp = explode("<>",$res); $arr = array( $num => $tmp[0], "name" => $tmp[1], "comment" => $tmp[2], $date => $tmp[3] ); $dataArr[]= $arr; } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>掲示板</title> </head> <body> <?php echo $message; ?> <form method="post" action=""> 名前:<input type="text" name="name" value="<?php echo $name; ?>" > <?php echo $err_msg1; ?><br> コメント:<textarea name="comment" rows="4" cols="40"><?php echo $comment; ?></textarea> <?php echo $err_msg2; ?><br> <br> <input type="submit" name="send" value="送信" > </form> <dl> <?php foreach( $dataArr as $arr ):?> <p><span><?php echo $count; ?></span>:<span><?php echo $arr["name"]; ?></span>:<span><?php echo $arr["comment"]; ?></span></p> <?php endforeach;?> </dl> </body> </html回答1件
あなたの回答
tips
プレビュー