質問編集履歴

1

要らないコードを削除しました。

2019/02/17 05:27

投稿

iwagu6n
iwagu6n

スコア12

test CHANGED
File without changes
test CHANGED
@@ -12,11 +12,7 @@
12
12
 
13
13
  ### PHPのソースコード
14
14
 
15
- if($lock = fopen(LOCK_FILE, "w+")){
16
15
 
17
- if(flock($lock,LOCK_EX)){
18
-
19
- // 編集するため、csvファイルを開く
20
16
 
21
17
  if($fp = fopen(CSV_FILE, "w+")){
22
18
 
@@ -32,15 +28,9 @@
32
28
 
33
29
  }
34
30
 
35
- // 全て空の場合は削除
36
-
37
31
  if($del) continue;
38
32
 
39
- // SJISに変換
40
33
 
41
- $line = mb_convert_encoding(join(",",$value),CSV_ENCODE,FORM_ENCODE)."\n";
42
-
43
- // ファイルへ書き込み
44
34
 
45
35
  fwrite($fp,$line);
46
36
 
@@ -52,100 +42,6 @@
52
42
 
53
43
 
54
44
 
55
- // ロックの解除
56
-
57
- flock($lock, LOCK_UN);
58
-
59
- fclose($lock);
60
-
61
- }else{
62
-
63
- echo("CSVファイルを開く事に失敗しました");
64
-
65
- exit();
66
-
67
- }
68
-
69
- }else{
70
-
71
- echo("ロックに失敗しました");
72
-
73
- exit();
74
-
75
- }
76
-
77
- }else{
78
-
79
- echo("ロックファイルを開く事に失敗しました");
80
-
81
- exit();
82
-
83
- }
84
-
85
- header("Location: ./csv.php");
86
-
87
- exit();
88
-
89
- }else{
90
-
91
- // 表示処理
92
-
93
- if($csv = file(CSV_FILE)){
94
-
95
- $csvLines = array();
96
-
97
- $maxCol = 0;
98
-
99
- foreach($csv as $key => $value){
100
-
101
- $csvLines[$key] = explode(",",mb_convert_encoding(trim($value),FORM_ENCODE,CSV_ENCODE));
102
-
103
- // セルの必要数の取得(横)
104
-
105
- $maxCol = count($csvLines[$key])>$maxCol?count($csvLines[$key]):$maxCol;
106
-
107
- }
108
-
109
- // 必要数分セルを用意する
110
-
111
- foreach($csvLines as $key => $val){
112
-
113
- for($i=0;$i<$maxCol;$i++){
114
-
115
- if(!isset($csvLines[$key][$i])){
116
-
117
- $csvLines[$key][$i] = "";
118
-
119
- }
120
-
121
- $csvLines[$key][$i] = htmlspecialchars($csvLines[$key][$i]);
122
-
123
- }
124
-
125
- }
126
-
127
- // 追加用の1行
128
-
129
- for($i=0;$i<$maxCol;$i++){
130
-
131
- $csvLines[$key+1][$i] = "";
132
-
133
- }
134
-
135
- }else{
136
-
137
- // ファイルが空の場合は追加行のみ(セルに「,」を入れて更新すると横セルを増やす事が可能)
138
-
139
- $csvLines = array(array(""));
140
-
141
- }
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
45
  ### HTMLのソースコード
150
46
 
151
47
 
@@ -154,81 +50,7 @@
154
50
 
155
51
  ```ここに言語名を入力
156
52
 
157
- ソースコー<script type="text/javascript" >
158
53
 
159
- // 編集したセルの背景色を変更
160
-
161
- function checkChange(id_a,a_val,b_val){
162
-
163
- if(a_val != b_val){
164
-
165
- document.getElementById(id_a).style.backgroundColor = '#FF66FF';
166
-
167
- }else{
168
-
169
- document.getElementById(id_a).style.backgroundColor = '#FFFF99';
170
-
171
- }
172
-
173
- }
174
-
175
-
176
-
177
- // 行のセルを空白に
178
-
179
- function lineDel(target){
180
-
181
- var ids = target.split(",");
182
-
183
- for(var i = 0;i < ids.length;i++){
184
-
185
- if(ids[i] != ""){
186
-
187
- document.getElementById(ids[i]).value = "";
188
-
189
- document.getElementById(ids[i]).style.backgroundColor = '#FF66FF';
190
-
191
- }
192
-
193
- }
194
-
195
- }
196
-
197
-
198
-
199
- // 行を元に戻す
200
-
201
- function lineBack(target){
202
-
203
- var ids = target.split(",");
204
-
205
- for(var i = 0;i < ids.length;i++){
206
-
207
- if(ids[i] != ""){
208
-
209
- var id_ab = ids[i].split("-");
210
-
211
- document.getElementById(id_ab[0]).value = document.getElementById(id_ab[1]).value;
212
-
213
- document.getElementById(id_ab[0]).style.backgroundColor = '#FFFF99';
214
-
215
- }
216
-
217
- }
218
-
219
- }
220
-
221
-
222
-
223
- </script>
224
-
225
- <!-- {/literal} -->
226
-
227
-
228
-
229
- </head>
230
-
231
- <body>
232
54
 
233
55
  <form action="csv.php" method="post">
234
56
 
@@ -240,47 +62,13 @@
240
62
 
241
63
  <tr>
242
64
 
243
- <!-- 最後の行は追加行となる -->
244
-
245
65
  <th>{if $smarty.foreach.csv_line.first}追加{else}{$smarty.foreach.csv_line.iteration-1}行目{/if}</th>
246
66
 
247
67
  {foreach key=x item=value from=$line}
248
68
 
249
69
  <td>
250
70
 
251
- <!-- nameを配列で指定 -->
252
71
 
253
- <input class="edit" onblur="checkChange(this.id,this.value,document.getElementById('b_{$y}_{$x}').value);" id="a_{$y}_{$x}" type="text" name="csv[{$y}][{$x}]" value="{$value}" />
254
-
255
- </td>
256
-
257
- <input type="hidden" id="b_{$y}_{$x}" value="{$value}" />
258
-
259
- {foreachelse}
260
-
261
- {/foreach}
262
-
263
- <td>
264
-
265
- <input onclick="lineBack('{foreach key=x item=value from=$line}a_{$y}_{$x}-b_{$y}_{$x},{foreachelse}{/foreach}');" type="button" value="行を元に戻す">
266
-
267
- </td>
268
-
269
- <td>
270
-
271
- <input onclick="lineDel('{foreach key=x item=value from=$line}a_{$y}_{$x},{foreachelse}{/foreach}');" type="button" value="行を削除">
272
-
273
- </td>
274
-
275
- </tr>
276
-
277
- {foreachelse}
278
-
279
- {/foreach}
280
-
281
- </table>
282
-
283
- <input type="hidden" name="update" value="1" >
284
72
 
285
73
  <input type="submit" value="更新する"/>ド
286
74