回答編集履歴

1

補足に伴い回答内容を変更

2015/11/27 00:21

投稿

nage
nage

スコア144

test CHANGED
@@ -1,4 +1,18 @@
1
+ --再編集--
2
+
1
- こういうこと
3
+ こういうことでしょうかね。
4
+
5
+ 編集したのは編集ブロックのとこだけ。
6
+
7
+
8
+
9
+ 該当する配列のそれぞれの値に対して
10
+
11
+ 1.trim()を使って前後の余計な文字を除去する。timestampだけ後ろに改行コード(\n)がひっついてるので。
12
+
13
+ 2.mb_substr()を使って{}を除去した文字列を抜き出す。(1文字目から-1文字まで抜き出し)
14
+
15
+ 3.配列に突っ込む。
2
16
 
3
17
 
4
18
 
@@ -6,6 +20,8 @@
6
20
 
7
21
  <?php
8
22
 
23
+
24
+
9
25
  $name = $_POST['name'];
10
26
 
11
27
  $name = htmlspecialchars($name);
@@ -38,6 +54,76 @@
38
54
 
39
55
  $num = count($line);
40
56
 
57
+
58
+
59
+ $write = "{". $num . "}<>{" . $name . "}<>{" . $comment . "}<>{" . $time . "}";
60
+
61
+
62
+
63
+ if (!empty($name) && !empty($comment)) {
64
+
65
+ $fp = fopen ("./kb.txt","a");
66
+
67
+ fputs ($fp, $write."\n");
68
+
69
+ fclose ($fp);
70
+
71
+ }
72
+
73
+
74
+
75
+ if (!empty($delete)) {
76
+
77
+ $delCon = file("kb.txt");
78
+
79
+ for ($j = 0; $j < count($delCon) ; $j++) {
80
+
81
+ $delData = explode("<>", $delCon[$j]);
82
+
83
+ if ($delData[0] == "{".$delete."}") {
84
+
85
+ array_splice($delCon, $j, 1);
86
+
87
+ file_put_contents("./kb.txt", $delCon);
88
+
89
+ }
90
+
91
+ }
92
+
93
+ }
94
+
95
+
96
+
97
+ // $editが'0'のときif文通らない
98
+
99
+ if (!empty($edit)) {
100
+
101
+ $ediCon = file("kb.txt");
102
+
103
+ for ($k = 0; $k < count($ediCon) ; $k++) {
104
+
105
+ $ediData = explode("<>", $ediCon[$k]);
106
+
107
+ if ($ediData[0] == "{".$edit."}") {
108
+
109
+ //$simEdit = explode("}<>{", $ediCon[$k]);
110
+
111
+ for($h = 0; $h < count($ediData); $h++){
112
+
113
+ $simEdit[$h] = mb_substr(trim($ediData[$h]), 1, -1);
114
+
115
+ }
116
+
117
+ }
118
+
119
+ }
120
+
121
+ }
122
+
123
+
124
+
125
+
126
+
41
127
  ?>
42
128
 
43
129
  <!DOCTYPE html>
@@ -56,19 +142,17 @@
56
142
 
57
143
  <body>
58
144
 
59
-
60
-
61
145
  <form method="POST" action="<?php echo($_SERVER['PHP_SELF']) ?>">
62
146
 
63
147
  <label for="name">名前:</label>
64
148
 
65
- <input type="text" name="name" value="<?php echo $name; ?>"><br><br>
149
+ <input type="text" name="name" value="<?php echo $simEdit[1]; ?>"><br><br>
66
150
 
67
151
 
68
152
 
69
153
  <label for="comment">コメント:</label>
70
154
 
71
- <textarea name="comment" cols="30" rows="5" value="<?php echo $simEdit[2]; ?>"><?= $comment ?></textarea><br>
155
+ <textarea name="comment" cols="30" rows="5"><?php echo $simEdit[2]; ?></textarea><br>
72
156
 
73
157
  <input type="submit" value="投稿する">
74
158
 
@@ -108,98 +192,32 @@
108
192
 
109
193
 
110
194
 
111
-
112
-
113
-
114
-
115
- <?php
195
+ <?php
116
-
117
-
118
-
119
-
120
-
121
- $write = "{". $num . "}<>{" . $name . "}<>{" . $comment . "}<>{" . $time . "}";
196
+
122
-
123
-
124
-
125
- if (!empty($name) && !empty($comment)) {
197
+
126
-
127
- $fp = fopen ("./kb.txt","a");
198
+
128
-
129
- fputs ($fp, $write."\n");
130
-
131
- fclose ($fp);
132
-
133
- }
134
-
135
-
136
-
137
- if (!empty($delete)) {
138
-
139
- $delCon = file("kb.txt");
199
+ $contents = file('kb.txt');
140
-
200
+
141
- for ($j = 0; $j < count($delCon) ; $j++) {
201
+ foreach($contents as $line){
142
-
202
+
143
- $delData = explode("<>", $delCon[$j]);
203
+ $data = explode("<>", $line);
204
+
144
-
205
+ for($i = 0 ; $i < count($data); $i++){
206
+
145
- if ($delData[0] == "{".$delete."}") {
207
+ echo $data[$i]."<br>";
146
-
147
- array_splice($delCon, $j, 1);
208
+
148
-
149
- file_put_contents("./kb.txt", $delCon);
209
+
150
-
151
- }
152
210
 
153
211
  }
154
212
 
155
213
  }
156
214
 
157
-
158
-
159
- if (!empty($edit)) {
215
+
160
-
161
- $ediCon = file("kb.txt");
216
+
162
-
163
- for ($k = 0; $k < count($ediCon) ; $k++) {
164
-
165
- $ediData = explode("<>", $ediCon[$k]);
166
-
167
- if ($ediData[0] == "{".$edit."}") {
168
-
169
- $simEdit = explode("}<>{", $ediCon[$k]);
170
-
171
- }
172
-
173
- }
174
-
175
- }
176
-
177
-
178
-
179
- $contents = file('kb.txt');
180
-
181
- foreach($contents as $line){
182
-
183
- $data = explode("<>", $line);
184
-
185
- for($i = 0 ; $i < count($data); $i++){
186
-
187
- echo $data[$i]."<br>";
188
-
189
-
190
-
191
- }
192
-
193
- }
194
-
195
-
196
-
197
- ?>
217
+ ?>
198
-
199
-
200
-
218
+
201
- </body>
219
+ </body>
202
-
220
+
203
- </html>
221
+ </html>
204
222
 
205
223
  ```