2012-02-24 1 views
2

PHP로 큰 csv 파일을 처리해야합니다. fgetcsv 및 성능을 사용하여 작업하는 것이 좋습니다. 더 나은/빠른 처리를 위해 csv 파일의 첫 번째 행에 열 이름이 있어야하는데,이 행 이름은 현재 누락되었습니다.PHP가 포함 된 CSV 파일 (첫 번째 줄)의 맨 위에 줄을 추가하십시오.

이제 fgetcsv로 파일을 처리하기 전에 PHP로 csv 파일에 열 이름이있는 맨 위 행을 추가하고 싶습니다.

PHP를 사용하여 파일의 맨 위 줄 맨 위에 추가하는 방법이 있습니까? 아니면 아래처럼 접근해야한다는 뜻입니까?

  1. 목록 항목
  2. 목록 항목
  3. 넣어 원래 CSV 내용을 임시 파일에 원래 CSV 파일의 내용을 읽을이 임시 파일에 열 이름을 추가 임시 파일
  4. 를 만들
  5. 원본 파일 삭제
  6. 임시 파일 이름 바꾸기

가장 효과적인 방법으로이 작업을 수행하는 방법에 대한 의견을 보내 주시면 감사하겠습니다. 시간 내 주셔서 감사합니다.

+0

이 라이브러리를 시도해보십시오 유용 할 수 있습니다 http://phpexcel.codeplex.com/wikipage?title=Examples –

+1

가능한 중복 [어떻게 파일을 시작할 수 있습니까?] (http : // stackoverflow .com/questions/3332262/how-do-i-prepend-file-to-begining) – Treffynnon

+0

당신 말이 맞아 .. 사이트를 검색하는 동안 그것을 발견하지 못했습니다 .. thanks – quokka

답변

1
  1. fgetcsv를 사용하여 CSV 파일을 읽습니다.
  2. 파일을 닫습니다.
  3. "w"(쓰기) 모드를 사용하여 파일을 엽니 다.
  4. 헤더를 작성하십시오.
  5. 파일을 닫습니다.
  6. "a"(추가) 모드를 사용하여 파일을 엽니 다.
  7. fputcsv를 사용하여 CSV 파일을 작성하십시오. Voila!
1

제공 한대로하십시오. 끝 대신에 파일을 쉽게 확장 할 수있는 방법은 없습니다. 그것은 종이에 쓰는 것과 같습니다. 텍스트 아래에 새 줄을 추가하는 것은 쉽지만 텍스트 위에는 쓸 수 없습니다.

fopen($file, "r+") 또는 fopen($file, "c")을 사용하지 마십시오. 파일의 처음부터 기존 줄이나 모든 줄까지 제거됩니다.

0

코드에 수동으로 헤더를 정의하지 않는 이유는 무엇입니까? 특히 모든 파일의 헤더가 같은 경우는 어떻습니까? 처리하기 전에 CSV 파일에 헤더를 삽입해야하는 경우 다음과 같이

2

을 사용하십시오.이 작업을 훨씬 간단하고 직관적으로 수행하십시오.

$file = 'addline.csv'; 
    $header = "Name, IP, Host, RAM, Task, NS \r\n"; 
    $data = file_get_contents($file); 
    file_put_contents($file, $header.$data); 

완료되었습니다. 희망이 도움이 ...

관련 문제