質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.71%

テキストファイルから最大値を取得し、最大値にプラス1したい

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 235

huku

score 4

現在phpで掲示板を作っています。
ファイルは"231536_receive.txt"とindex.phpの二つで構成していて、index.phpの中で入力した内容を"231536_receive.txt"に保存して表示する形にしています。
コード全体は下に貼っています。
今までは段落数で投稿番号をつけていたのですが、投稿番号の最大値を取得して最大値にプラス1をした投稿番号をつけたいと考えています。
そこで、コードを書いたのですが、なぜか1が二回登場してしまいます。
このバグの処理の仕方がわかりません。
力を貸していただきたいです。
よろしくお願いします。
2個目のコードも試しましたがまたもや1が二回でで来てしまいました。
三つ目のコードも試しましたが、同じく1が二回出てしまいます。

コードをクロームの検証機能で検証したところ、1が二個出現する一つ目の1に*がついておりカーソルを合わせるとufeffが出てきました。これは解決の糸口になるのでしょうか?

$file="231536_receive.txt";
$count=1;
$files = file('231536_receive.txt');

if (file_exists($file)) {
  // 2ループ処理
  for ($i=1; $i<count($files); $i++){
    $numraw = explode("<>", trim($files[$i]));
    $numpoint = $numraw[0];
    // 最大値より配列の値が大きければ上書きをする
    if($count <= $numpoint){
       $count=$numpoint;
       $count=++$count;
    }
  }
} else {
       $count = 1;
   }
$file="231536_receive.txt";
if (file_exists($file)) {
  $files = file('231536_receive.txt');
  $lastLine = $files[count($files) -1];
  $num = explode('<>', $lastLine)[0];
  $count=(int)$num +1;

} else {
       $count = 1;
   }
$file="231536_receive.txt";

   if(file_exists($file))
   {
   $text_file = file($file);//ファイルがあったら、ファイルを配列化する
   $last_toukou=end($text_file);//最後の投稿の要素を取り出す
   $divide_end_number=explode("<>",$last_toukou);//最後の投稿の要素を、さらに<>で分割する
   $count=(int)$divide_end_number[0]+1;//投稿番号の部分を取り出し、投稿番号が「最後の投稿の番号+1」の数になるように設定

   }
   else
   {
   $count=1;//ファイルがなかったら「投稿番号=1」
   };
<?php


// $file="231536_receive.txt";
// if (file_exists($file)) {
//     $count = count(file($file))+1;
// } else {
//        $count = 1;
//    }

$file="231536_receive.txt";
$count=1;
$files = file('231536_receive.txt');

if (file_exists($file)) {
  // 2ループ処理
  for ($i=1; $i<count($files); $i++){
    $numraw = explode("<>", trim($files[$i]));
    $numpoint = $numraw[0];
    // 最大値より配列の値が大きければ上書きをする
    if($count <= $numpoint){
       $count=$numpoint;
       $count=++$count;
    }
  }
} else {
       $count = 1;
   }


$err_msg1 = "";
$err_msg2 = "";
$err_msg7= "";
$message ="";
$passmessage="";
$edfile = file('231536_receive.txt');
$name=( isset( $_POST["name"] ) === true ) ?$_POST["name"]: "";
$text=( isset( $_POST["text"] ) === true ) ?$_POST["text"]: "";
$password=( isset( $_POST["password"] ) === true ) ?$_POST["password"]: "";
$data=($count."<>".$name."<>".$text."<>" .date('H:i:s')."<>".$password."\n");

if ( isset($_POST["posting"] ) === true ) {
    if ( $name     === "" ) $err_msg1 = "名前を入力してください";
    if ( $text     === "" ) $err_msg2 = "コメントを入力してください";
    if ( $password === "" ) $err_msg7 = "パスワードを入力してください";
    if ( ($err_msg1 === "") && ($err_msg2 === "") && ($err_msg7 === "") ) {
        $fp = fopen( "231536_receive.txt" ,"a" );
        fwrite($fp , $data);
        $message = "投稿に成功しました。";
        fclose($fp);
    }
}






// 編集フォーム
$err_msg3 = "";
$err_msg4 = "";
$err_msg5 = "";
$err_msg9 = "";
$message2 ="";
$edfile = file('231536_receive.txt');
$renum=( isset( $_POST["renum"] ) === true ) ?$_POST["renum"]: "";
$rename=( isset( $_POST["rename"] ) === true ) ?$_POST["rename"]: "";
$retext=( isset( $_POST["retext"] ) === true ) ?$_POST["retext"]: "";
$pass2ed=( isset( $_POST["pass2ed"] ) === true ) ?$_POST["pass2ed"]: "";
$redata=($renum."<>".$rename."<>".$retext."<>" .date('H:i:s')."<>".$pass2ed."\n");

if (  isset($_POST["edit"] ) ===  true ) {

    if ( $renum   === "" ) $err_msg3 = "番号を入力してください";
    if ( $rename   === "" ) $err_msg4 = "名前を入力してください";
    if ( $retext  === "" )  $err_msg5 = "コメントを入力してください";
    if ( $pass2ed  === "" )  $err_msg9 = "パスワードを入力してください";

    if ( ($err_msg3 === "") && ($err_msg4 === "") && ($err_msg5 === "") && ($err_msg9 === "") ) {
        $fp = fopen("231536_receive.txt", "w");
        for ($i = 0; $i < count($edfile); $i++) {
            $editraw = explode("<>", trim($edfile[$i]));  //  <-- trim()をつけないとパスワードに改行コードがツイたまま。

            if ($editraw[0] !== $renum) {
                fwrite($fp, $edfile[$i]);
            }
            else {  // <-- 投稿番号と編集番号が一致
                if ($editraw[4] === $pass2ed){
                    fwrite($fp, $redata);
                    $message2 = "編集に成功しました。";
                }
                else {
                    fwrite($fp, $edfile[$i]);
                    $message2 = "編集に失敗しました。パスワードが間違っています。";
                }
            }
        }
        if ($message2 === '') {
            $message2 = "編集に失敗しました。編集番号が一致しませんでした。";
        }
    }
}
     // 消去フォーム
     $err_msg6 = "";
     $err_msg8 = "";
     $delfile  = file('231536_receive.txt');
     $delete   = ( isset( $_POST["delete"] )   === true ) ? $_POST["delete"]   : "";
     $pass3del = ( isset( $_POST["pass3del"] ) === true ) ? $_POST["pass3del"] : "";



          if ( isset($_POST["delete"] ) ===  true ) {
              if ( $delete   === "" ) $err_msg6 = "番号を入力してください";
              if ( $pass3del === "" ) $err_msg8 = "パスワードを入力してください";

              if ( ($err_msg6 === "") && ($err_msg8 === "") ) {
                  $fp = fopen("231536_receive.txt", "w");
                  for ($i = 0; $i < count($delfile); $i++) {
                      $deldata = explode( "<>", trim($delfile[$i]) );
                      if ( $deldata[0] !== $delete ) {
                          fwrite($fp, $delfile[$i]);
                      }
                      else {
                          if ($deldata[4] === $pass3del) {
                              $err_msg6 = $delete . "番の消去に成功しました。";

                          }
                          else {
                              $err_msg8 = $delete . "番の消去に失敗しました。パスワードが間違っています。";
                              fwrite($fp, $delfile[$i]);
                          }
                      }
                  }
                  if ( ($err_msg6 === '') && ($err_msg8 === '') ) {
                      $err_msg6 = $delete . '番に一致するものを見つけられませんでした。';
                  }
              }
          }

?>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>掲示板</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <link rel="stylesheet" href="./styles.css" type="text/css">
</head>
<body>
<h1>掲示板</h1>
<section>
    <h2>新規投稿</h2>
    <form action="index.php" method="post">
         名前 : <input type="text" name="name" > <?php echo $err_msg1; ?><br>
        コメント: <input type="text" name="text" > <?php echo $err_msg2; ?><br>
        パスワードを設定 <input type="text" name="password" > <?php echo $err_msg7; ?>
        <input type="submit" value="投稿" name="posting"><br>
        <?php echo $message; ?>
    </form>


    <h2>投稿編集</h2>
    <form action="index.php" method="post">
      編集番号 <input type="number" name="renum"> <?php echo $err_msg3; ?><br>
      名前: <input type="text" name="rename" ><?php echo $err_msg4; ?><br>
      コメント: <input type="text" name="retext" > <?php echo $err_msg5; ?><br>
      パスワードを入力 <input type="text" name="pass2ed" ><?php echo $err_msg9; ?><br>
      <input type="submit" value="編集" name="edit"><br>
      <?php echo $message2; ?>
    </form>




    <h2>消去</h2>
    <form action="index.php" method="post">
      消去番号 <input type="number" name="delete">     <?php echo $err_msg6; ?><br>
      パスワードを入力 <input type="text" name="pass3del" > <?php echo $err_msg8; ?><br>
      <input type="submit" value="消去">  <br>
    </form>

</section>
<section>
    <h2>投稿一覧</h2>
</section>

<?php
// 読み込むファイル名の指定
$file_name = "231536_receive.txt";
// ファイルを全て配列に入れる
$ret_array = file( $file_name );

// 取得したファイルデータ(配列)を全て表示する
for( $i = 0; $i < count($ret_array); ++$i ) {
  $echo_array = explode("<>", $ret_array[$i]);

//   // 配列を順番に表示する
  echo ( $echo_array[0]."<>".$echo_array[1]."<>".$echo_array[2]."<>".$echo_array[3]."<br />\n" );
}

 ?>


</body>
</html>

コード
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • amura

    2020/01/08 07:32

    最初のPHPのみです。2番目の時に1が再度振られる部分のみを修正してみました。
    // 2ループ処理
    for ($i=0; $i<count($files); $i++){
    $numraw = explode("<>", trim($files[$i]));
    $numpoint = $numraw[0];
    // 最大値より配列の値が大きければ上書きをする
    if($count <= $numpoint){
    $count=$numpoint+1;
    }
    }
    全体を見ていないのでご参考まで

    キャンセル

  • huku

    2020/01/08 12:05

    試してみましたが駄目でした。
    やはり1が二回出てきてしまいます。

    キャンセル

  • FKM

    2020/01/24 15:24 編集

    一番最初の配列に対し、var_dump($numraw);として、その結果を出力してもらっていいですか?

    キャンセル

回答 4

+1

一応できている様です、確認頂けますでしょうか?ファイルは存在していないから始めています。

<?php

// $file="231536_receive.txt";
// if (file_exists($file)) {
//     $count = count(file($file))+1;
// } else {
//        $count = 1;
//    }

$file="231536_receive.txt";
$count=1;

if (file_exists($file)) {
  // 2ループ処理
  $files = file('231536_receive.txt');
  for ($i=0; $i<count($files); $i++){
    $numraw = explode("<>", trim($files[$i]));
    $numpoint = $numraw[0];
    // 最大値より配列の値が大きければ上書きをする
    if($count <= $numpoint){
       $count=$numpoint+1;
    }
  }
} else {
       $count = 1;
}


$err_msg1 = "";
$err_msg2 = "";
$err_msg7= "";
$message ="";
$passmessage="";
$edfile = file('231536_receive.txt');
$name=( isset( $_POST["name"] ) === true ) ?$_POST["name"]: "";
$text=( isset( $_POST["text"] ) === true ) ?$_POST["text"]: "";
$password=( isset( $_POST["password"] ) === true ) ?$_POST["password"]: "";
$data=($count."<>".$name."<>".$text."<>" .date('H:i:s')."<>".$password."\n");

if ( isset($_POST["posting"] ) === true ) {
    if ( $name     === "" ) $err_msg1 = "名前を入力してください";
    if ( $text     === "" ) $err_msg2 = "コメントを入力してください";
    if ( $password === "" ) $err_msg7 = "パスワードを入力してください";
    if ( ($err_msg1 === "") && ($err_msg2 === "") && ($err_msg7 === "") ) {
        $fp = fopen( "231536_receive.txt" ,"a" );
        fwrite($fp , $data);
        $message = "投稿に成功しました。";
        fclose($fp);
    }
}

// 編集フォーム
$err_msg3 = "";
$err_msg4 = "";
$err_msg5 = "";
$err_msg9 = "";
$message2 ="";
$edfile = file('231536_receive.txt');
$renum=( isset( $_POST["renum"] ) === true ) ?$_POST["renum"]: "";
$rename=( isset( $_POST["rename"] ) === true ) ?$_POST["rename"]: "";
$retext=( isset( $_POST["retext"] ) === true ) ?$_POST["retext"]: "";
$pass2ed=( isset( $_POST["pass2ed"] ) === true ) ?$_POST["pass2ed"]: "";
$redata=($renum."<>".$rename."<>".$retext."<>" .date('H:i:s')."<>".$pass2ed."\n");

if (  isset($_POST["edit"] ) ===  true ) {

    if ( $renum   === "" ) $err_msg3 = "番号を入力してください";
    if ( $rename   === "" ) $err_msg4 = "名前を入力してください";
    if ( $retext  === "" )  $err_msg5 = "コメントを入力してください";
    if ( $pass2ed  === "" )  $err_msg9 = "パスワードを入力してください";

    if ( ($err_msg3 === "") && ($err_msg4 === "") && ($err_msg5 === "") && ($err_msg9 === "") ) {
        $fp = fopen("231536_receive.txt", "w");
        for ($i = 0; $i < count($edfile); $i++) {
            $editraw = explode("<>", trim($edfile[$i]));  //  <-- trim()をつけないとパスワードに改行コードがツイたまま。

            if ($editraw[0] !== $renum) {
                fwrite($fp, $edfile[$i]);
            }
            else {  // <-- 投稿番号と編集番号が一致
                if ($editraw[4] === $pass2ed){
                    fwrite($fp, $redata);
                    $message2 = "編集に成功しました。";
                }
                else {
                    fwrite($fp, $edfile[$i]);
                    $message2 = "編集に失敗しました。パスワードが間違っています。";
                }
            }
        }
        if ($message2 === '') {
            $message2 = "編集に失敗しました。編集番号が一致しませんでした。";
        }
        fclose($fp);
    }
}
     // 消去フォーム
     $err_msg6 = "";
     $err_msg8 = "";
     $delfile  = file('231536_receive.txt');
     $delete   = ( isset( $_POST["delete"] )   === true ) ? $_POST["delete"]   : "";
     $pass3del = ( isset( $_POST["pass3del"] ) === true ) ? $_POST["pass3del"] : "";



          if ( isset($_POST["delete"] ) ===  true ) {
              if ( $delete   === "" ) $err_msg6 = "番号を入力してください";
              if ( $pass3del === "" ) $err_msg8 = "パスワードを入力してください";

              if ( ($err_msg6 === "") && ($err_msg8 === "") ) {
                  $fp = fopen("231536_receive.txt", "w");
                  for ($i = 0; $i < count($delfile); $i++) {
                      $deldata = explode( "<>", trim($delfile[$i]) );
                      if ( $deldata[0] !== $delete ) {
                          fwrite($fp, $delfile[$i]);
                      }
                      else {
                          if ($deldata[4] === $pass3del) {
                              $err_msg6 = $delete . "番の消去に成功しました。";

                          }
                          else {
                              $err_msg8 = $delete . "番の消去に失敗しました。パスワードが間違っています。";
                              fwrite($fp, $delfile[$i]);
                          }
                      }
                  }
                  if ( ($err_msg6 === '') && ($err_msg8 === '') ) {
                      $err_msg6 = $delete . '番に一致するものを見つけられませんでした。';
                  }
                  fclose($fp);
              }
          }

?>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>掲示板</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <link rel="stylesheet" href="./styles.css" type="text/css">
</head>
<body>
<h1>掲示板</h1>
<section>
    <h2>新規投稿</h2>
    <form action="index.php" method="post">
         名前 : <input type="text" name="name" > <?php echo $err_msg1; ?><br>
        コメント: <input type="text" name="text" > <?php echo $err_msg2; ?><br>
        パスワードを設定 <input type="text" name="password" > <?php echo $err_msg7; ?>
        <input type="submit" value="投稿" name="posting"><br>
        <?php echo $message; ?>
    </form>


    <h2>投稿編集</h2>
    <form action="index.php" method="post">
      編集番号 <input type="number" name="renum"> <?php echo $err_msg3; ?><br>
      名前: <input type="text" name="rename" ><?php echo $err_msg4; ?><br>
      コメント: <input type="text" name="retext" > <?php echo $err_msg5; ?><br>
      パスワードを入力 <input type="text" name="pass2ed" ><?php echo $err_msg9; ?><br>
      <input type="submit" value="編集" name="edit"><br>
      <?php echo $message2; ?>
    </form>




    <h2>消去</h2>
    <form action="index.php" method="post">
      消去番号 <input type="number" name="delete">     <?php echo $err_msg6; ?><br>
      パスワードを入力 <input type="text" name="pass3del" > <?php echo $err_msg8; ?><br>
      <input type="submit" value="消去">  <br>
    </form>

</section>
<section>
    <h2>投稿一覧</h2>
</section>

<?php
// 読み込むファイル名の指定
$file_name = "231536_receive.txt";
// ファイルを全て配列に入れる
$ret_array = file( $file_name );

// 取得したファイルデータ(配列)を全て表示する
for( $i = 0; $i < count($ret_array); ++$i ) {
  $echo_array = explode("<>", $ret_array[$i]);
  // 配列を順番に表示する
  echo ( $echo_array[0]."<>".$echo_array[1]."<>".$echo_array[2]."<>".$echo_array[3]."<br />\n" );
}
?>

</body>
</html>

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/01/08 23:02

    サーバーは借り物で、自分が直接借りたもの(Xサーバーなど)ではないので正直何とも言えないですが、とりあえず待ってみることにします。
    もし何か解決策がありましたらまた教えていただきたいです。

    キャンセル

  • 2020/01/08 23:03

    ご指摘ありがとうございます。
    手直ししておきます。

    キャンセル

  • 2020/01/09 10:00

    PHP入れ替えが行われているかを確かめるには画面下記にVersion番号(勝手な更新番号)を表示すれば確認できます。
    本題とは関係ありませんが、画面入力文字列に<>が含まれることは避ける様にされた方がよろしいかと。

    キャンセル

+1

ここを下のようにしても変わりませんか?

if (file_exists($file)) {
  // 2ループ処理
  $files = file('231536_receive.txt');
  for ($i=0; $i<count($files); $i++){
    $numraw = explode("<>", trim($files[$i]));
    $numpoint = $numraw[0];
    // 最大値より配列の値が大きければ上書きをする
    if($count < $numpoint){
       $count=$numpoint+1;
    }
  }
} else {
       $count = 1;
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/01/23 16:15

    回答ありがとうございます。
    試してみましたが変わらないようです。

    キャンセル

check解決した方法

0

$file="231536_receive.txt";
$files = file('231536_receive.txt');
$count=1;
$fileinside = file_get_contents($file);
if ($fileinside === "") {
  $count=1;
} else {
  // 2ループ処理
  for ($i=0; $i<count($files); $i++){
    $numraw = explode("<>", trim($files[$i]));
    $numpoint = $numraw[0];
    // 最大値より配列の値が大きければ上書きをする
    if($count <= $numpoint){
      $count= (int)$numpoint+1;
    }
   }
  }

このように記述し、表示部分を

$file="231536_receive.txt";
$files = file('231536_receive.txt');
$count=1;
$fileinside = file_get_contents($file);
if ($fileinside === "") {
  $count=1;
} else {
  // 2ループ処理
  for ($i=0; $i<count($files); $i++){
    $numraw = explode("<>", trim($files[$i]));
    $numpoint = $numraw[0];
    // 最大値より配列の値が大きければ上書きをする
    if($count <= $numpoint){
      $count= (int)$numpoint+1;
    }
   }
  }

このように記述し、表示部分を


$file="231536_receive.txt";
   $file_name = "231536_receive.txt";
   // ファイルを読み込み変数に格納
   $fileinside = file_get_contents($file);
   if ($fileinside === "") {
       echo "投稿がありません";
   } else {
     // 読み込むファイル名の指定
     $file_name = "231536_receive.txt";
     // ファイルを全て配列に入れる
     $ret_array = file( $file_name );

     // 取得したファイルデータ(配列)を全て表示する
     for( $i = 0; $i < count($ret_array); ++$i ) {
       $echo_array = explode("<>", $ret_array[$i]);

     //   // 配列を順番に表示する
       echo ( $echo_array[0]."<>".$echo_array[1]."<>".$echo_array[2]."<>".$echo_array[3]."<br />\n" );
     }
      }

このように表示するとうまく表示することができました。
上のコードだけでなく下の部分にも問題があったのかもしれないです。
また、テキストファイルに文字はないですが何かしらのデータが祖jン材していたのが原因になったのかもしれません。
回答していただいた方々ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

同様の現象を経験しました。
コードは有っているはずなのに何故か二回1がカウントされたことがありました。
テキストファイルの内容を全部消したはずなのにFFFTPに表示されているサイズを見ると3になっていました。
そのせいで正しくカウント出来ていなかったようです。(原因は解明出来ませんでしたが)
その様な不具合はありませんか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.71%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る