텍스트 파일에서 데이터를 가져 와서 데이터를 데이터베이스로 전달하려고합니다. 문제는 뷰를 새로 고침 할 때마다 데이터가 전송되고 중복 데이터가 발생한다는 것을 의미합니다. 이러한 일이 발생하지 않도록하는 방법이 있습니까? 아마도 파일을 잘라내거나 처리 된 마지막 줄의 줄 번호를 저장하는 것일까 요?다시로드 할 때 중복 데이터보기
또한 텍스트 파일 생성 방법은 파일 이름에 날짜가있는 새 텍스트 파일을 매일 얻는 것이므로 어쩌면 내가 생각했던 또 다른 접근법은 내가 태그를 붙일 새로운 데이터베이스 테이블을 만드는 것이 었습니다 각 파일은 "프로세스"로 처리되므로 함수는 한 번 이상 동일한 파일을 처리하지 않습니다.
1618 0002 9 9 505 04129284134 4141191269 4141191269 56984 4 002 001 4
1606 0000 9 1159 4169191388 4169191388 4 012 0
1607 0009 7 9 505 04129284134 1245 1245 56984 4
1619 0000 9 6 1172 2129922686 2129922686 4 013 0
1606 0000 9 1159 4169191388 4169191388 4 012 0
1607 0009 7 9 505 04129284134 1245 1245 56984 4
1619 0000 7 6 521 1188# 1172 1172 0 001 4
1606 0000 9 1159 4169191388 4169191388 4 012 0
1607 0009 7 9 505 04129284134 1245 1245 56984 4
을 그리고 여기 내 루트 파일을 사용하고 기능입니다 :
다음은 텍스트 파일의 예
Route::get('calls', function() {
foreach (file(public_path() . "/calls.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $line) {
$calls = new Calls();
$calls->time = trim(substr($line, 0, 4));
$calls->duration = trim(substr($line, 5, 4));
$calls->cond_code = trim(substr($line, 10, 1));
$calls->code_dial = trim(substr($line, 15, 1));
$calls->code_used = trim(substr($line, 18, 3));
$calls->dialed_num = trim(substr($line, 24, 11));
$calls->calling_num = trim(substr($line, 39, 11));
$calls->clg_num_in_tac = trim(substr($line, 53, 11));
$calls->auth_code = trim(substr($line, 64, 5));
$calls->frl = trim(substr($line, 70, 1));
$calls->ixc_code = trim(substr($line, 77, 3));
$calls->in_crt_id = trim(substr($line, 85, 3));
$calls->save();
}
return View::make('test')
->with('calls', Calls::all());
});
txt 파일 또는 탭으로 구분 된 CSV입니까? – Jeff
'get' 경로를 통해 양식 요청을 처리하는 것은 나쁜 습관입니다. 아래의 내 솔루션을 살펴보고 적합한 지 확인하십시오. – Gayan
@Jeff 고정 너비 열이있는 텍스트 파일입니다. –