저는 csv 파서 클래스 (http://code.google.com/p/php-csv-parser/)를 사용하여 CSV 파일에서 데이터를 구문 분석하고 추출합니다. 내가 만나는 문제는 특정 CSV 파일 형식에서만 작동한다는 것입니다. (Mac, MS-DOS 및 Windows 용 CSV 유형이있는 것으로 보입니다.)CSV 파일 형식 표준화
csv-windows를 사용하여 Mac에 저장 한 csv 파일을 사용하면 코드가 작동합니다. 선택권. 그러나 windows 컴퓨터에 파일을 단순히 csv로 저장하면 작동하지 않습니다. (당신은 그것이 Mac에서 csv-windows를 저장하는 것과 같은 형식 일 것이라고 생각할 것입니다.) csv-MSDOS 파일로 저장하면 Windows 컴퓨터에서 작동합니다. 이것은 약간 우스운 것처럼 보인다.
내 코드가 업로드되는 모든 유형의 csv를 읽을 수 있도록이 세 가지 파일 형식을 표준화하는 방법이 있습니까?
나는이 같은 것 생각하고 있어요 :
$standardizedCSV = preg_replace_all('/\r[^\n]/', '\r\n', $csvContent);
나는 그것이 각 파일 형식이 라인의 끝을 처리하는 방법을 함께 할 수있는 뭔가가 알고 있지만, 나는 내려고 조금 넣어 밖으로 해요 그 차이점들. 누군가 조언이 있다면 알려주세요.
감사합니다.
UPDATE : 이 행에 의해 데이터 행을 추출 내가 사용 csv로 파서에서 관련 코드 :
$c = 0;
$d = $this->settings['delimiter'];
$e = $this->settings['escape'];
$l = $this->settings['length'];
$res = fopen($this->_filename, 'r');
while ($keys = fgetcsv($res, $l, $d, $e)) {
if ($c == 0) {
$this->headers = $keys;
} else {
array_push($this->rows, $keys);
}
$C++;
}
가 나는 할 수 있도록 내가 fgetcsv는 EOL의를 처리하는 방법을 이해하는 데 필요한 것 같아요 모든 형식의 CSV 파일이 같은 방식으로 처리되는지 확인하십시오.
업데이트 csv 파서의 관련 코드를 원래 게시물에 추가하여 EOL을 처리하는 방법을 볼 수 있습니다. – user1383418