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

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

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

709閲覧

テキストの指定行の内容を編集

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/06/01 10:03

編集2021/06/01 10:43

テキストの指定行の内容を編集する事は、結構大変ですか?
大変であるならば、編集内容をテキストの最下行に挿入したあと、
古い内容のある行を削除する、という手段も取れるのですが・・・。

toinpu.php

php

1<?php 2$file_name = "log.txt"; 3$log0 = file( $file_name ); 4 5for($i = 0 ; $i < count($log0); $i++){ 6$log1[$i] = explode(",",$log0[$i]); 7} 8 9$count = 5; 10?> 11 12<form action="input2.php" method="post"> 13<select name="no"> 14<?php 15for($i=0;$i<=$count;$i++){ 16print '<option value="' . $log1[$i][0]. '">' . $log1[$i][0].$log1[$i][9]. '点' . '</option>' . "\n"; 17} 18?> 19</select> 20 21<input type="submit" value="送信"> 22</form>

input2.php

php

1<?php 2 3if (isset($_POST['no'])){ 4$no = $_POST['no']; 5} 6 7$log1 = filter_input(INPUT_POST,"a",FILTER_DEFAULT,FILTER_REQUIRE_ARRAY); 8 9$file_name = "log.txt"; 10$log0 = file( $file_name ); 11 12for($i = 0 ; $i < count($log0); $i++){ 13$log2[$i] = explode(",",$log0[$i]); 14} 15 16if (isset($_POST['name'])){ 17$name = $_POST['name']; 18$count = count(file("log.txt"))+1; 19file_put_contents("log.txt",$count.$name[0].",".$name[1].",".$name[2].",".$name[3].",".$name[4].",".$name[5].",".$name[6].",".$name[7].",".$name[8].",".$name[9].PHP_EOL,FILE_APPEND); 20 21$file = file("log.txt"); 22unset($file[$no]); 23file_put_contents("log.txt", $file); 24 25print ("データ受け取り完了。"); 26 27} else { 28$name = array(); 29} 30 31?> 32 33<!doctype html> 34<html> 35<head> 36<meta charset="utf-8"> 37<title>input.php</title> 38</head> 39<body> 40 41<form action="input2.php" method="post"> 42 43<input type="hidden" name="no" value="<?php echo $no ?>"> 44 45 <table border="1" width="1300" height="200"> 46 <tr> 47 <td>0</td> 48 <td><input type="text" name="name[]" value="<?php echo $log2[$no][0] ?>"></td> 49 </tr> 50 <tr> 51 <td>1</td> 52 <td><input type="text" name="name[]" value="<?php echo $log2[$no][1] ?>"></td> 53 <td>2</td> 54 <td><input type="text" name="name[]" value="<?php echo $log2[$no][2] ?>"></td> 55 <td>3</td> 56 <td><input type="text" name="name[]" value="<?php echo $log2[$no][3] ?>"></td> 57 </tr> 58 <tr> 59 <td>4</td> 60 <td><input type="text" name="name[]" value="<?php echo $log2[$no][4] ?>"></td> 61 <td>5</td> 62 <td><input type="text" name="name[]" value="<?php echo $log2[$no][5] ?>"></td> 63 <td>6</td> 64 <td><input type="text" name="name[]" value="<?php echo $log2[$no][6] ?>"></td> 65 </tr> 66 <tr> 67 <td>7</td> 68 <td><input type="text" name="name[]" value="<?php echo $log2[$no][7] ?>"></td> 69 <td>8</td> 70 <td> 71<select name="name[]" value="<?php echo $log2[$no][8] ?>"> 72<option value="0">0</option> 73<option value="10">1</option> 74<option value="20">2</option> 75<option value="30">3</option> 76<option value="40">4</option> 77<option value="50">5</option> 78</select> 79 </td> 80 <td>9</td> 81 <td><input type="text" name="name[]" value="<?php echo $log2[$no][9] ?>"></td> 82 </tr> 83 <tr> 84 <td><input type="submit" value="入力"></td> 85 </tr> 86 </table> 87</form> 88 89<p> 90</body> 91</html>

この、input2.phpの、
if (isset($_POST['no'])){
$no = $_POST['no'];
}
の下に、
if (isset($_POST['name'])){
$name = $_POST['name'];
$count = count(file("log.txt"))+1;
file_put_contents("log.txt",$count.$name[0].",".$name[1].",".$name[2].",".$name[3].",".$name[4].",".$name[5].",".$name[6].",".$name[7].",".$name[8].",".$name[9].PHP_EOL,FILE_APPEND);
print ("受け取り");
} else {
$name = array();
}
こういう感じのコード(未完成すぎる)を書いて、
とりあえず、log.txtの「$no」行目にあるテキストを削除した後、
新たフォーム入力した情報($name)を、「$no」行目(もしくは最下段)に加えたいのですが、
これをやろうと思うと、複雑になりすぎてよく分かりません、どうすれば良いのでしょうか。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

さほど大変ではありませんが
基本的には全データを読み込んで編集後書き込むという流れが楽です

投稿2021/06/01 10:14

yambejp

総合スコア114994

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/01 10:16

なんか結局そんな感じのコードになりそうです。
退会済みユーザー

退会済みユーザー

2021/06/01 10:33

いや、、これちょっと自分が考えたものは、 複雑すぎて無理でした・・・
yambejp

2021/06/01 10:35

もうすこし具体的な質問なら回答できるかもしれません どういうテキストの、どこに修正したいのか・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問