回答編集履歴
1
補足に伴い回答内容を変更
answer
CHANGED
@@ -1,7 +1,15 @@
|
|
1
|
+
--再編集--
|
1
|
-
こういうこと
|
2
|
+
こういうことでしょうかね。
|
3
|
+
編集したのは編集ブロックのとこだけ。
|
2
4
|
|
5
|
+
該当する配列のそれぞれの値に対して
|
6
|
+
1.trim()を使って前後の余計な文字を除去する。timestampだけ後ろに改行コード(\n)がひっついてるので。
|
7
|
+
2.mb_substr()を使って{}を除去した文字列を抜き出す。(1文字目から-1文字まで抜き出し)
|
8
|
+
3.配列に突っ込む。
|
9
|
+
|
3
10
|
```PHP
|
4
11
|
<?php
|
12
|
+
|
5
13
|
$name = $_POST['name'];
|
6
14
|
$name = htmlspecialchars($name);
|
7
15
|
|
@@ -18,6 +26,41 @@
|
|
18
26
|
|
19
27
|
$line = file("kb.txt");
|
20
28
|
$num = count($line);
|
29
|
+
|
30
|
+
$write = "{". $num . "}<>{" . $name . "}<>{" . $comment . "}<>{" . $time . "}";
|
31
|
+
|
32
|
+
if (!empty($name) && !empty($comment)) {
|
33
|
+
$fp = fopen ("./kb.txt","a");
|
34
|
+
fputs ($fp, $write."\n");
|
35
|
+
fclose ($fp);
|
36
|
+
}
|
37
|
+
|
38
|
+
if (!empty($delete)) {
|
39
|
+
$delCon = file("kb.txt");
|
40
|
+
for ($j = 0; $j < count($delCon) ; $j++) {
|
41
|
+
$delData = explode("<>", $delCon[$j]);
|
42
|
+
if ($delData[0] == "{".$delete."}") {
|
43
|
+
array_splice($delCon, $j, 1);
|
44
|
+
file_put_contents("./kb.txt", $delCon);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
// $editが'0'のときif文通らない
|
50
|
+
if (!empty($edit)) {
|
51
|
+
$ediCon = file("kb.txt");
|
52
|
+
for ($k = 0; $k < count($ediCon) ; $k++) {
|
53
|
+
$ediData = explode("<>", $ediCon[$k]);
|
54
|
+
if ($ediData[0] == "{".$edit."}") {
|
55
|
+
//$simEdit = explode("}<>{", $ediCon[$k]);
|
56
|
+
for($h = 0; $h < count($ediData); $h++){
|
57
|
+
$simEdit[$h] = mb_substr(trim($ediData[$h]), 1, -1);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
|
21
64
|
?>
|
22
65
|
<!DOCTYPE html>
|
23
66
|
<html>
|
@@ -27,13 +70,12 @@
|
|
27
70
|
</head>
|
28
71
|
|
29
72
|
<body>
|
30
|
-
|
31
73
|
<form method="POST" action="<?php echo($_SERVER['PHP_SELF']) ?>">
|
32
74
|
<label for="name">名前:</label>
|
33
|
-
<input type="text" name="name" value="<?php echo $
|
75
|
+
<input type="text" name="name" value="<?php echo $simEdit[1]; ?>"><br><br>
|
34
76
|
|
35
77
|
<label for="comment">コメント:</label>
|
36
|
-
<textarea name="comment" cols="30" rows="5"
|
78
|
+
<textarea name="comment" cols="30" rows="5"><?php echo $simEdit[2]; ?></textarea><br>
|
37
79
|
<input type="submit" value="投稿する">
|
38
80
|
</form>
|
39
81
|
|
@@ -53,51 +95,18 @@
|
|
53
95
|
<input type="submit" value="編集する">
|
54
96
|
</form>
|
55
97
|
|
56
|
-
|
98
|
+
<?php
|
57
99
|
|
58
|
-
<?php
|
59
|
-
|
60
|
-
|
61
|
-
$write = "{". $num . "}<>{" . $name . "}<>{" . $comment . "}<>{" . $time . "}";
|
62
|
-
|
63
|
-
if (!empty($name) && !empty($comment)) {
|
64
|
-
$fp = fopen ("./kb.txt","a");
|
65
|
-
fputs ($fp, $write."\n");
|
66
|
-
fclose ($fp);
|
67
|
-
}
|
68
|
-
|
69
|
-
if (!empty($delete)) {
|
70
|
-
$delCon = file("kb.txt");
|
71
|
-
for ($j = 0; $j < count($delCon) ; $j++) {
|
72
|
-
$delData = explode("<>", $delCon[$j]);
|
73
|
-
if ($delData[0] == "{".$delete."}") {
|
74
|
-
array_splice($delCon, $j, 1);
|
75
|
-
file_put_contents("./kb.txt", $delCon);
|
76
|
-
}
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
if (!empty($edit)) {
|
81
|
-
$ediCon = file("kb.txt");
|
82
|
-
for ($k = 0; $k < count($ediCon) ; $k++) {
|
83
|
-
$ediData = explode("<>", $ediCon[$k]);
|
84
|
-
if ($ediData[0] == "{".$edit."}") {
|
85
|
-
$simEdit = explode("}<>{", $ediCon[$k]);
|
86
|
-
}
|
87
|
-
}
|
88
|
-
}
|
89
|
-
|
90
|
-
|
100
|
+
$contents = file('kb.txt');
|
91
101
|
foreach($contents as $line){
|
92
102
|
$data = explode("<>", $line);
|
93
103
|
for($i = 0 ; $i < count($data); $i++){
|
94
104
|
echo $data[$i]."<br>";
|
95
105
|
|
96
106
|
}
|
97
|
-
}
|
107
|
+
}
|
98
|
-
|
108
|
+
|
99
|
-
|
109
|
+
?>
|
100
|
-
|
101
|
-
|
110
|
+
</body>
|
102
|
-
|
111
|
+
</html>
|
103
112
|
```
|