2010-03-29 3 views
0

내가 좋아하는 일을하고 있어요 :함수가 CSV 파일을 반환합니다. 검사하는 방법은 무엇입니까?

$ 데이터가 지금 파일을 전달하고 및 권한 '+ W'로 쓰는 것이는 fopen을 사용하여 개방하고 명령 프롬프트에서 기본적으로 전달하고 자원 스트림
$outputFile = getCurrentDBSnapshot($data); 

getCurrentDBSnapshot은 테이블의 현재 상태를 가져오고 $ data.csv 파일을 업데이트하므로 기본적으로 $ outputFile은 데이터베이스 테이블의 현재 상태로 업데이트됩니다. 현재 var_dump 또는 $ outputFile 값을 표시하여 현재 데이터를 볼 수 있습니다. 그것으로.

하지만

$this->fout = fopen($outputFile,'r') or die('Cannot open file'); 
$test = fgetcsv($outputFile,5000,";"); 
var_dump($test); 

을 수행 할 때 그것은 매개 변수 1 문자열 유형으로 자원을 전달하고 기대하는 말을 나에게 오류를 제공합니다.

(가) $ 출력 _의

를 포함하고 그래서 내 질문에

가 어떻게이 (가) $ 출력 _ 또는 존재가 들어 볼 수 있다는 것입니다 볼 수있는 내 목표 어떻게 함수가 반환 getcurrentDBSnapshot 것을 볼 수 있습니다 나? 매뉴얼의 fgetcsv 페이지를 인용

+0

이 질문이 명확하지 않습니까? 이 것이 빠진 것이 더 유용한 질문이 될 수 있습니까? – Rachel

답변

0

fegtcsv은 첫 번째 매개 변수로 파일 이름이 아닌 파일 핸들을 사용합니다. 유사는 fgets로, fgetcsv 단순히 파일의 한 줄을 얻는다

$this->fout = fopen($outputFile,'r') or die('Cannot open file'); 
while ($test = fgetcsv($this->fout,5000,";")) 
{ 
    var_dump($test); 
} 

하는 것으로 : 당신은 같은 일을해야합니다.

또한 왜 세 번째 인수로 세미콜론을 fgetcsv에 전달하는지 잘 모르겠습니다. CSV는 쉼표로 구분 된 값의 약자입니다. 파일이 세미콜론으로 구분되어 있는지 확인 하시겠습니까?

+0

예, 내 파일은 세미콜론으로 구분되며'fgetcsv()는 매개 변수 1이 리소스이고 부울은 주어진 것으로 기대하고'var_dump ($ test)의 값은'NULL '입니다. – Rachel

+0

CSV 파일은 일부 국가에서 세미콜론으로 구분됩니다 예 : 프랑스) – eli

0

, fgetcsv에 전달 된 첫 번째 매개 변수는 다음과 같아야합니다

성공적으로 fopen()에 의해 열린 파일 에

유효한 파일 포인터, popen(), 또는 fsockopen(). 열린 파일에 즉 문자열, 그리고 핸들 - 여기


, 당신은 먼저 읽어하려는 파일의 이름이 포함 된 매개 변수 $outputFile로 전달된다. (!) 참고로

$this->fout = fopen($outputFile,'r') or die('Cannot open file'); 
$test = fgetcsv($this->fout,5000,";"); 
var_dump($test); 


: fgetcsv 것이다에만 반환이 fopen를 호출 $this->fout에 그것의 반환 값을 저장하는 고려

이 아마 이런 당신이 fgetcsv에 전달해야 변수입니다 당신이 그것을 부를 때마다 한 라인의 데이터 - 전체 파일의 내용을보고 싶다면 루프를 사용해야 할 수도 있습니다.

예 1, the manual page of fgetcsv에서 확인하십시오.

+0

'fgetcsv()는 매개 변수 1이 리소스이고 부울은 주어진'을 기대하고'var_dump ($ test)'는'NULL'을줍니다 – Rachel

+0

스트림을 어떻게 열 수 있습니까? – Rachel

관련 문제