2012-12-31 4 views
4

나는 탭으로 구분 된 간단한 csv 파일을 가지고있다. 왜냐하면 그것은 어딘가에서오고 hvae가 그것을 읽고 내 DB에 삽입하기 때문에 사용해야한다. 읽어 간단한 PHP 코드를 사용 csv (탭 구분) 제대로 읽을 수 없다

if(($handle = fopen("var/import/MMT29DEC.csv","r"))!==FALSE){ 
      /*Skip the first row*/ 
      fgetcsv($handle, 1000,chr(9)); 
      while(($data = fgetcsv($handle,1000,chr(9)))!==FALSE){ 
        print_r($data[0]); 
         } 
} 

데이터 인 print_r가

Array ([0] => 01SATAPC [1] => 40ATAPC [2] => [3] => 21P [4] => SERIAL ATA POWER CABLE [5] => 0.00 [6] => 2.00 [7] => 0 [8] => Power Supplies [9] => SERIAL ATA POWER CABLE [10] => 
4 TO 15 PIN 160MM 
[11] => [12] => [13] => [14] => MELBHO [15] => 0.000 [16] => [17] => Order to Order [18] => 4 [19] => 2013-01-18) 
원하는 결과

하지만 같이 도시

난 $ 데이터 [ '를 이용하여 특정 열 값을 액세스하기 위해 이동 될 때 색인 '] 예 이상하게도 쓰레기 값을주는 $ data [8] 또는 $ data [1] 그것은 나에게 올바른 값을 주지만 10-15 행 뒤에는 숫자와 다른 열 값을 제공하기 시작한 것 같아 ..... 나는 돈을 내지 않는다. 내가 무슨 문제가 서식 파일을해야합니다 잘 알고있는만큼 잘 알고있어. 내가 엑셀에서 파일을 열려고 시도하고 잘오고 .... ....

+0

원하지 않는 결과가 나오는 부분을 살펴보십시오. 그들은 아마 형식화되어 있습니까? – KingCrunch

+0

@KingCrunch nope 그들은 괜찮아 보인다 ... 심지어 $ 데이터 배열 괜찮아요 다음 적절한 인덱스 값을 제공하지 않습니다 : '( – ravisoni

+0

둘 다 동일해야하지만 시도 줄. "t"대신 char 사용하십시오. (9) – Venu

답변

7

@ravisoni 당신은 fgetcsv의 두 번째 매개 변수 1000의 값이 파일의 가장 긴 행보다 길습니까? 문서가 [php.net/fgetcsv]라고 말하면서 0으로 설정해보고 차이가 있는지 확인해보십시오.

if(($handle = fopen("var/import/MMT29DEC.csv","r"))!==FALSE){ 
      /*Skip the first row*/ 
      fgetcsv($handle, 0,chr(9)); 
      while(($data = fgetcsv($handle,0,chr(9)))!==FALSE){ 
        print_r($data[0]); 
         } 
} 
+0

고마워요 @ 톤 플렉스 .... – ravisoni

관련 문제