LoginSignup
0
2

More than 3 years have passed since last update.

PHP 簡易掲示板作成 データ保存編 #1

Posted at

目標

・「名前」と「コメント」の入力フォームから値を送信

・テキストファイルに「1投稿につき1行」で保存
1. テキストファイルを指定する
2. 指定したテキストファイルを開く
3. テキストファイルに書き込む
4. テキストファイルを閉じる

・保存フォーマット
投稿番号<>名前<>コメント<>投稿日時
$num."<>".$name."<>".$str."<>".$date;
1. 「名前」と「コメント」を受け取る
2. 受け取った値を変数に代入
3. 日時を取得する
4. 投稿番号を取得する
5. 1~4を組み合わせて投稿を作成

sample.txt
1<>yuya<>完成<>2021/2/8 10:13:16
2<>yuya<>完成<>2021/2/8 10:13:22
3<>yuya<>完成<>2021/2/8 10:13:25

「名前」と「コメント」の入力フォームから値を送信

入力フォームを作成

HTML
<!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
<?php
    $filename = "sample.txt";
?>

2. 指定したテキストファイルを開く
投稿内容を追記したいのでオープンモードを "a"にする

PHP
<?php
    $fp = fopen( $filename, "a");
?>

3. テキストファイルに書き込む
PHP_EOL:改行コードを出力する
→改行されて追加される
書き込む内容は$comment

PHP
<?php
    fwrite($fp, $comment.PHP_EOL);
?>

4. テキストファイルを閉じる

PHP
<?php
    fclose($fp);
?>

まとめ

PHP
<?php

    // ファイルの指定
    $filename = "sample.txt";

    // ファイルを開く
    $fp = fopen( $filename, "a");

    // ファイルに記入
    fwrite($fp, $comment.PHP_EOL);

    // ファイルを閉じる
    fclose($fp);
?>

保存フォーマット:投稿番号<>名前<>コメント<>投稿日時

1. 「名前」と「コメント」を受け取る
2. 受け取った値を変数に代入

PHP
<?php
    $name = $_POST["name"];
    $str = $_POST["str"];
?>

3. 日時を取得する

PHP
<?php
    $date = date("Y/n/j G:i:s");
?>

4.投稿番号を取得する
file_exists関数  ファイルが存在→ true
ファイルが不在→ false

count関数
→配列の要素の数を数え、それを数値として返す

file関数
→ファイルを読み込み行ごとに配列にして返す

ファイルが存在する場合  → 少なくとも1行は投稿がある → 投稿番号 = 行数 + 1
ファイルが存在しない場合 → 1行もない  → 初投稿  → 投稿番号 = 1

PHP
<?php
    if(file_exists($filename)){
        $num = count(file($filename)) + 1;
    }else{
        $num = 1;
    }
?>

5. 投稿を作成

PHP
<?php
    $comment =$num."<>".$name."<>".$str."<>".$date;
?>

まとめ

PHP
<?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
<?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);
?>
0
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2