teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

正解

2021/02/04 10:02

投稿

ykkk
ykkk

スコア91

title CHANGED
File without changes
body CHANGED
@@ -62,7 +62,51 @@
62
62
  */
63
63
  public function handle()
64
64
  {
65
+
66
+ $test = storage_path('app/public/study05.csv');
67
+ $pf = fopen($test, 'r');
68
+ $test1 = fopen('public/storage/test.csv', 'w');
69
+ if ($pf === false) {
70
+ echo "ファイルオープン時に失敗したので処理終了します。" . PHP_EOL;
71
+ exit;
72
+ }
73
+
74
+ $now = Carbon::today();
75
+ $out_year = substr($now, 0, 4);
76
+ $out_month = substr($now, 5, 2);
77
+ $i = 0;
78
+ $old_year = $out_year -2;
79
+
80
+ while ($line1 = fgets($pf)) {
81
+ $i++;
82
+
83
+
84
+ // カンマ分割
85
+ $test_field = explode(',', $line1);
86
+
87
+ // 日付分割
88
+ $test_date = explode('/', $test_field[0]);
89
+
90
+
91
+
92
+ $test2 = $test_field[0].','.$test_field[1].','.$test_field[2];
93
+ $test3 = mb_convert_encoding("$test2", "SJIS-win");
94
+ // fwrite($test1, $test3);
95
+ if($test_date[0] < $out_year || $test_date[1] <= $out_month){
96
+ fwrite($test1, $test3);
97
+ }
98
+
99
+ }
100
+ fclose($pf);
101
+ fclose($test1);
102
+
103
+
104
+
105
+
106
+
107
+
108
+
65
- $filename = storage_path('app/public/study05.csv');
109
+ $filename = storage_path('app/public/test.csv');
66
110
  $fp = fopen($filename, 'r');
67
111
 
68
112
  if ($fp === false) {

2

インデント調整

2021/02/04 10:02

投稿

ykkk
ykkk

スコア91

title CHANGED
File without changes
body CHANGED
@@ -66,132 +66,132 @@
66
66
  $fp = fopen($filename, 'r');
67
67
 
68
68
  if ($fp === false) {
69
- echo "ファイルオープン時に失敗したので処理終了します。".PHP_EOL;
69
+ echo "ファイルオープン時に失敗したので処理終了します。" . PHP_EOL;
70
- exit;
70
+ exit;
71
- }
71
+ }
72
72
 
73
- $is_error = false;
73
+ $is_error = false;
74
- $break_key_year = '';
74
+ $break_key_year = '';
75
- $break_key_month = '';
75
+ $break_key_month = '';
76
- $i=0;
76
+ $i = 0;
77
77
 
78
- $nyukin = 0; // 入金
78
+ $nyukin = 0; // 入金
79
- $syukin = 0; // 出金
79
+ $syukin = 0; // 出金
80
80
 
81
-   $a =0;
81
+ $a = 0;
82
-   $b =0;
82
+ $b = 0;
83
83
 
84
-  while ($line = fgets($fp)) {
84
+ while ($line = fgets($fp)) {
85
-   $i++;
85
+ $i++;
86
86
 
87
- // ファイル読込終了判定
87
+ // ファイル読込終了判定
88
- if (feof($fp)) {
88
+ if (feof($fp)) {
89
- break;
89
+ break;
90
- }
90
+ }
91
91
 
92
- // ファイル読込エラー判定
92
+ // ファイル読込エラー判定
93
- if ($line === false) {
93
+ if ($line === false) {
94
- echo "ファイル読込時に失敗したので処理終了します。".PHP_EOL;
94
+ echo "ファイル読込時に失敗したので処理終了します。" . PHP_EOL;
95
- $is_error = true;
95
+ $is_error = true;
96
- break;
96
+ break;
97
- }
97
+ }
98
98
 
99
- // カンマ分割
99
+ // カンマ分割
100
- $work_field = explode(',', $line);
100
+ $work_field = explode(',', $line);
101
101
 
102
- // 日付分割
102
+ // 日付分割
103
- $work_date = explode('/', $work_field[0]);
103
+ $work_date = explode('/', $work_field[0]);
104
104
 
105
- $stock_nyukin[] = $work_field[1];
105
+ $stock_nyukin[] = $work_field[1];
106
- $total_nyukin = array_sum($stock_nyukin);
106
+ $total_nyukin = array_sum($stock_nyukin);
107
107
 
108
- $stock_syukin[] = $work_field[2];
108
+ $stock_syukin[] = $work_field[2];
109
- $total_syukin = array_sum($stock_syukin);
109
+ $total_syukin = array_sum($stock_syukin);
110
110
 
111
- $now = Carbon::today();
111
+ $now = Carbon::today();
112
- $out_year = substr($now,0,4);
112
+ $out_year = substr($now, 0, 4);
113
- $out_month = substr($now,5,2);
113
+ $out_month = substr($now, 5, 2);
114
114
 
115
+ // if($break_key_year = $out_year && $break_key_month = $out_month){
116
+ // break;
117
+ // }
115
118
 
116
- if (($break_key_year != $work_date[0]) || ($break_key_month != $work_date[1])) {
119
+ // if($work_date[0] = $out_year && $work_date[1] = $out_month){
120
+ // break;
121
+ // }
117
122
 
118
- if($break_key_year = $out_year && $break_key_month > $out_month){
123
+ if (($break_key_year != $work_date[0]) || ($break_key_month != $work_date[1])) {
119
- break;
120
- }
121
124
 
122
-
123
- if ($i != 1) {
125
+ if ($i != 1) {
124
-
125
- echo $break_key_year.'年'.$break_key_month.'月'.'入金集計:'.$nyukin.'、出金合計:'.$syukin.PHP_EOL;
126
126
 
127
- $stock_year_nyukin[] = $nyukin;
128
- $year_nyukin = array_sum($stock_year_nyukin);
127
+ echo $break_key_year . '年' . $break_key_month . '月' . '入金集計:' . $nyukin . '、出金合計:' . $syukin . PHP_EOL;
129
128
 
130
- $stock_year_syukin[] = $syukin;
129
+ $stock_year_nyukin[] = $nyukin;
131
- $year_syukin = array_sum($stock_year_syukin);
130
+ $year_nyukin = array_sum($stock_year_nyukin);
132
-
133
- $nyukin = 0;
134
- $syukin = 0;
135
131
 
132
+ $stock_year_syukin[] = $syukin;
136
- if(($break_key_year != $work_date[0])){
133
+ $year_syukin = array_sum($stock_year_syukin);
137
134
 
138
- echo '---------------------------------------------------'.PHP_EOL;
139
- echo $break_key_year.'年:'.'入金合計:'.$year_nyukin.'、出金合計:'.$year_syukin.PHP_EOL;
140
- echo PHP_EOL;
135
+ $nyukin = 0;
136
+ $syukin = 0;
141
137
 
142
- $keep1 = $year_nyukin;
138
+ if (($break_key_year != $work_date[0])) {
143
- $keep2 = $year_syukin;
144
-
145
-  }
146
139
 
147
-    }
140
+ echo '---------------------------------------------------' . PHP_EOL;
148
-
149
- $break_key_year = $work_date[0];
141
+ echo $break_key_year . '年:' . '入金合計:' . $year_nyukin . '、出金合計:' . $year_syukin . PHP_EOL;
150
- $break_key_month = $work_date[1];
142
+ echo PHP_EOL;
151
-
152
- }
153
143
 
154
-
155
-   $w_nyukin = trim($work_field[1]);
144
+ $keep1 = $year_nyukin;
156
-   $w_syukin = trim($work_field[2]);
145
+ $keep2 = $year_syukin;
157
146
 
158
- if(empty($w_nyukin) && empty($w_syukin)){
159
- echo $i.'行目のデータがありませんのでデータをスキップします。'.PHP_EOL;
160
- continue;
161
- }
147
+ }
162
148
 
163
- //通常処理
164
- if (empty($w_nyukin)) {
165
- $syukin += $w_syukin;
166
- } else {
167
- $nyukin += $w_nyukin;
168
- }
149
+ }
169
150
 
151
+ $break_key_year = $work_date[0];
152
+ $break_key_month = $work_date[1];
170
153
 
171
- }
154
+ }
172
155
 
173
-  $a = $total_nyukin - $keep1;
156
+ $w_nyukin = trim($work_field[1]);
174
-  $b = $total_syukin - $keep2;
157
+ $w_syukin = trim($work_field[2]);
175
158
 
159
+ if (empty($w_nyukin) && empty($w_syukin)) {
160
+ echo $i . '行目のデータがありませんのでデータをスキップします。' . PHP_EOL;
161
+ continue;
162
+ }
163
+
164
+ //通常処理
165
+ if (empty($w_nyukin)) {
166
+ $syukin += $w_syukin;
167
+ } else {
168
+ $nyukin += $w_nyukin;
169
+ }
170
+
171
+ // if($break_key_year = $out_year && $break_key_month = $out_month){
172
+ // break;
173
+ // }
174
+
175
+ }
176
+
177
+ $a = $total_nyukin - $keep1;
178
+ $b = $total_syukin - $keep2;
179
+
176
- echo $break_key_year.'年'.$break_key_month.'月'.'入金集計:'.$nyukin.'、出金合計:'.$syukin.PHP_EOL;
180
+ echo $break_key_year . '年' . $break_key_month . '月' . '入金集計:' . $nyukin . '、出金合計:' . $syukin . PHP_EOL;
177
- echo '---------------------------------------------------'.PHP_EOL;
181
+ echo '---------------------------------------------------' . PHP_EOL;
178
- echo $break_key_year.'年:'.'入金合計:'.$a.'、出金合計:'.$b.PHP_EOL;
182
+ echo $break_key_year . '年:' . '入金合計:' . $a . '、出金合計:' . $b . PHP_EOL;
179
183
  echo PHP_EOL;
180
- echo '========================================='.PHP_EOL;
184
+ echo '=========================================' . PHP_EOL;
181
- echo 'トータル:'.'入金合計:'.$total_nyukin.'、出金合計:'.$total_syukin.PHP_EOL;
185
+ echo 'トータル:' . '入金合計:' . $total_nyukin . '、出金合計:' . $total_syukin . PHP_EOL;
182
186
  fclose($fp);
183
187
 
188
+ if ($i == 0) {
189
+ echo "指定されたファイルは空ファイルでした。" . PHP_EOL;
190
+ }
184
191
 
185
- if ($i == 0) {
186
- echo "指定されたファイルは空ファイルでした。".PHP_EOL;
187
- }
188
-
189
-
190
192
  return 0;
191
- }
193
+ }
192
-
193
194
 
194
-
195
195
  }
196
196
 
197
197
  ```

1

インデント調整

2021/02/03 04:06

投稿

ykkk
ykkk

スコア91

title CHANGED
File without changes
body CHANGED
@@ -78,11 +78,11 @@
78
78
  $nyukin = 0; // 入金
79
79
  $syukin = 0; // 出金
80
80
 
81
- $a =0;
81
+   $a =0;
82
- $b =0;
82
+   $b =0;
83
83
 
84
- while ($line = fgets($fp)) {
84
+  while ($line = fgets($fp)) {
85
- $i++;
85
+   $i++;
86
86
 
87
87
  // ファイル読込終了判定
88
88
  if (feof($fp)) {
@@ -142,9 +142,9 @@
142
142
  $keep1 = $year_nyukin;
143
143
  $keep2 = $year_syukin;
144
144
 
145
- }
145
+  }
146
146
 
147
- }
147
+    }
148
148
 
149
149
  $break_key_year = $work_date[0];
150
150
  $break_key_month = $work_date[1];
@@ -152,8 +152,8 @@
152
152
  }
153
153
 
154
154
 
155
- $w_nyukin = trim($work_field[1]);
155
+   $w_nyukin = trim($work_field[1]);
156
- $w_syukin = trim($work_field[2]);
156
+   $w_syukin = trim($work_field[2]);
157
157
 
158
158
  if(empty($w_nyukin) && empty($w_syukin)){
159
159
  echo $i.'行目のデータがありませんのでデータをスキップします。'.PHP_EOL;
@@ -170,21 +170,21 @@
170
170
 
171
171
  }
172
172
 
173
- $a = $total_nyukin - $keep1;
173
+  $a = $total_nyukin - $keep1;
174
- $b = $total_syukin - $keep2;
174
+  $b = $total_syukin - $keep2;
175
175
 
176
- echo $break_key_year.'年'.$break_key_month.'月'.'入金集計:'.$nyukin.'、出金合計:'.$syukin.PHP_EOL;
176
+ echo $break_key_year.'年'.$break_key_month.'月'.'入金集計:'.$nyukin.'、出金合計:'.$syukin.PHP_EOL;
177
177
  echo '---------------------------------------------------'.PHP_EOL;
178
178
  echo $break_key_year.'年:'.'入金合計:'.$a.'、出金合計:'.$b.PHP_EOL;
179
179
  echo PHP_EOL;
180
- echo '========================================='.PHP_EOL;
180
+ echo '========================================='.PHP_EOL;
181
- echo 'トータル:'.'入金合計:'.$total_nyukin.'、出金合計:'.$total_syukin.PHP_EOL;
181
+ echo 'トータル:'.'入金合計:'.$total_nyukin.'、出金合計:'.$total_syukin.PHP_EOL;
182
- fclose($fp);
182
+ fclose($fp);
183
183
 
184
184
 
185
- if ($i == 0) {
185
+ if ($i == 0) {
186
186
  echo "指定されたファイルは空ファイルでした。".PHP_EOL;
187
- }
187
+ }
188
188
 
189
189
 
190
190
  return 0;