#目標
・「名前」と「コメント」の入力フォームから値を送信
・テキストファイルに「1投稿につき1行」で保存
- テキストファイルを指定する
- 指定したテキストファイルを開く
- テキストファイルに書き込む
- テキストファイルを閉じる
・保存フォーマット
投稿番号<>名前<>コメント<>投稿日時
$num."<>".$name."<>".$str."<>".$date;
1. 「名前」と「コメント」を受け取る
2. 受け取った値を変数に代入
3. 日時を取得する
4. 投稿番号を取得する
5. 1~4を組み合わせて投稿を作成
1<>yuya<>完成<>2021/2/8 10:13:16
2<>yuya<>完成<>2021/2/8 10:13:22
3<>yuya<>完成<>2021/2/8 10:13:25
#「名前」と「コメント」の入力フォームから値を送信
入力フォームを作成
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>簡易掲示板</title>
</head>
<body>
<form action="" method="post">
<input type="text" name="name" placeholder="名前">
<input type="text" name="str" placeholder="コメント">
<input type="submit" name="submit" value = "投稿">
</form>
</body>
</html>
#テキストファイルに「1投稿につき1行」で保存
1. テキストファイルを指定する
<?php
$filename = "sample.txt";
?>
2. 指定したテキストファイルを開く
投稿内容を追記したいのでオープンモードを "a"
にする
<?php
$fp = fopen( $filename, "a");
?>
3. テキストファイルに書き込む
PHP_EOL
:改行コードを出力する
→改行されて追加される
書き込む内容は$comment
<?php
fwrite($fp, $comment.PHP_EOL);
?>
4. テキストファイルを閉じる
<?php
fclose($fp);
?>
まとめ
<?php
// ファイルの指定
$filename = "sample.txt";
// ファイルを開く
$fp = fopen( $filename, "a");
// ファイルに記入
fwrite($fp, $comment.PHP_EOL);
// ファイルを閉じる
fclose($fp);
?>
#保存フォーマット:投稿番号
<>`名前`<>`コメント`<>投稿日時
1. 「名前」と「コメント」を受け取る
2. 受け取った値を変数に代入
<?php
$name = $_POST["name"];
$str = $_POST["str"];
?>
3. 日時を取得する
<?php
$date = date("Y/n/j G:i:s");
?>
4.投稿番号を取得する
file_exists
関数 ファイルが存在→ true
ファイルが不在→ false
count
関数
→配列の要素の数を数え、それを数値として返す
file
関数
→ファイルを読み込み行ごとに配列にして返す
ファイルが存在する場合 → 少なくとも1行は投稿がある → 投稿番号 = 行数 + 1
ファイルが存在しない場合 → 1行もない → 初投稿 → 投稿番号 = 1
<?php
if(file_exists($filename)){
$num = count(file($filename)) + 1;
}else{
$num = 1;
}
?>
5. 投稿を作成
<?php
$comment =$num."<>".$name."<>".$str."<>".$date;
?>
まとめ
<?php
//値の受け取りと変数への代入
$name = $_POST["name"];
$str = $_POST["str"];
//日付の取得
$date = date("Y/n/j G:i:s");
//投稿番号の取得
if(file_exists($filename)){
$num = count(file($filename)) + 1;
}else{
$num = 1;
}
//投稿の作成
$coment =$num."<>".$name."<>".$str."<>".$date;
?>
#まとめ
<?php
//値の受け取りと変数への代入
$name = $_POST["name"];
$str = $_POST["str"];
//日付の取得
$date = date("Y/n/j G:i:s");
//投稿番号の取得
if(file_exists($filename)){
$num = count(file($filename)) + 1;
}else{
$num = 1;
}
//投稿の作成
$coment =$num."<>".$name."<>".$str."<>".$date;
// ファイルの指定
$filename = "sample.txt";
// ファイルを開く
$fp = fopen( $filename, "a");
// ファイルに記入
fwrite($fp, $comment.PHP_EOL);
// ファイルを閉じる
fclose($fp);
?>